您需要使用 SSIS 数据类型 text stream [DT_TEXT] 从数据类型为 varchar(MAX)
的 SQL Server 表列中获取数据
这是一个简单的示例,说明 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]
将大长度的文本插入源表。执行打包前可以看到源表中的数据超过10000个字符,目的表为空。
创建一个带有数据库连接管理器的 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 根据源表上定义的数据类型VARCHAR(MAX) 将列数据类型设置为文本stream [DT_TEXT]。
以下是 SSIS 中 SQL Server 数据类型 VARCHAR(MAX) 和 NVARCHAR(MAX) 的映射。
VARCHAR(MAX) ---> 文本流 [DT_TEXT]
NVARCHAR(MAX) ---> Unicode 文本流 [DT_NTEXT]
在 MSDN Integration Services Data Types
上了解更多信息
希望对您有所帮助。