为什么数据类型DT_NTEXT从SQL命令OLE DB源?

问题描述 投票:0回答:1

在我们的SSIS包,在数据流中的OLE DB源代码编辑器,连接管理器是一个SQL命令,SQL命令文本是这样的:

With Managers AS (
  select distinct t1.ID,
    STUFF((SELECT distinct ' & ' + t2. MgrName
      from myTableA t2
      where t1.ID = t2.ID
        FOR XML PATH(''), TYPE
        ).value('.', 'NVARCHAR(MAX)') 
      ,1,3,'') MgrName
  from myTableA)
select Managers.MgrName as ManagerName
:
FROM myTableB INNER JOIN myTableA 
ON myTableB.ID = myTableB.ID

当我用鼠标右键单击该OLE DB源>显示高级编辑器>输入和输出属性,ManagerName的数据类型是Unicode文本流[DT_NTEXT。

为什么是数据类型DT_NTEXT,而不是DT_WSTR或DT_STR?

OLE DB目标(SQL Server数据库)的数据为这种类型是VARCHAR,所以我才可以填充OLE DB目标我需要从做一个“数据转换”

Unicode text stream [DT_NTEXT]
To 
Unicode string [DT_WSTR]
To
string [DT_WSTR]
sql-server ssis etl ssis-2012 ntext
1个回答
2
投票

DT_WSTRDT_STR分别具有4000首8000个字符最大长度。其结果是它们太小针对(n)varchar(MAX)映射等DT_NTEXTDT_TEXT被使用。

最新问题
© www.soinside.com 2019 - 2025. All rights reserved.