Ответ 1
Для получения данных из столбцов таблицы SQL Server типа данных varchar(MAX)
text stream [DT_TEXT]
Вот простой пример, иллюстрирующий, как SSIS автоматически передает типы данных из источника. В этом примере используется база данных SQL Server 2008 R2 и SSIS 2008 R2
Создайте следующие таблицы в базе данных SQL Server, чтобы сохранить исходный текст и использовать назначение для вставки текста с помощью пакета SSIS.
CREATE TABLE [dbo].[SourceTable](
[Id] [int] IDENTITY(1,1) NOT NULL,
[SourceText] [varchar](max) NOT NULL
) ON [PRIMARY]
CREATE TABLE [dbo].[DestinationTable](
[Id] [int] IDENTITY(1,1) NOT NULL,
[DestinationText] [varchar](max) NOT NULL
) ON [PRIMARY]
Вставьте текст большой длины в исходную таблицу. Вы можете увидеть данные в исходной таблице, содержащей более 10 000 символов, а таблица назначения пуста перед выполнением пакета.
Создайте пакет SSIS с диспетчером соединений в базе данных. Поместите задачу потока данных в задачу "Контроль потока". В рамках задачи потока данных поместите источник OLE DB и OLE DB для передачи данных с dbo.SourceTable
на dbo.DestinationTable
. Здесь на снимках экрана отображается статус выполнения пакета.
Если вы снова запустите запрос, вы увидите, что таблица назначения заполняется текстом из исходной таблицы с использованием пакета SSIS без каких-либо ошибок усечения.
Вернитесь на вкладку задачи потока данных пакета и щелкните правой кнопкой мыши на OLE DB Source
, а затем нажмите Show Advanced Editor...
На вкладке Advanced Editor for OLE DB Source
щелкните вкладку "Свойства ввода и вывода". Разверните External Columns
и выберите SourceText
. Вы заметите, что SSIS установил тип данных столбца в текст stream [DT_TEXT]
на основе типа данных varchar(MAX)
, определенного в исходной таблице.
Ниже приведены сопоставления для типов данных SQL Server VARCHAR (MAX) и NVARCHAR (MAX) в SSIS.
VARCHAR (MAX) --- > текстовый поток [DT_TEXT]
NVARCHAR (MAX) --- > Текстовый поток Unicode [DT_NTEXT]
Подробнее об этом читайте в Типы данных служб интеграции MSDN
Надеюсь, что это поможет.