为什么这个SSIS包会抛出转换错误?

Abe*_*ler 3 sql-server ssis sql-server-2008

当我运行它时,我收到以下错误:

数据流任务出错[SQL Server目标[164]]:无法插入"SepticSystemType"列,因为不支持DT_NTEXT和DT_WSTR类型之间的转换.

但根据这个图表,演员是合法的:

http://msdn.microsoft.com/en-us/library/ms141704.aspx

我错过了什么吗?

小智 6

这是一个可能的选择.您可以使用Data Conversion Transformation数据流任务中的可用任务将输入从一种数据类型转换为另一种数据类型.以下示例显示了如何完成此操作.

分步过程:

  1. 创建两个名为的表dbo.DataNText,dbo.DataUnicode如屏幕截图#1和#2所示.
  2. 使用一个数据流任务创建包.使用OLE DB soruce,数据转换任务和OLE DB目标配置数据流任务.请参阅屏幕截图#6以了解如何配置任务.NText是OLE DB源任务; Conversion是数据转换转换任务; 并且Unicode是OLE DB目标任务.
  3. NText配置为从表中检索数据dbo.DataNText.列映射完成,如屏幕截图#3所示.
  4. 转换任务的配置如屏幕截图#4所示.选择要转换的列,为输出列提供名称.通常它被命名为Copy of.将数据类型更改为Unicode String [DT_WSTR]并提供长度255.这个值用于此示例以显示转换配置的完成方式.
  5. Unicode配置为将数据保存到表中dbo.DataUnicode.列映射完成,如屏幕截图#5所示.
  6. 示例包执行显示在屏幕截图#6中.
  7. 两个表的示例数据内容显示在屏幕截图#7中.

这也可以使用Derived Column Transformation任务来实现.

希望有所帮助.

截图#1:

1

截图#2:

2

截图#3:

3

截图#4:

4

截图#5:

五

截图#6:

6

截图#7:

7