В нашем пакете служб 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Исходный код> Показать расширенный редактор> Свойства ввода и вывода, DataType ManagerName является текстовым потоком Unicode [DT_NTEXT].
Почему DataType 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]