在SSIS

时间:2017-05-10 10:08:24

标签: ssis

我正在使用SSIS在环境之间移动数据,在将输入列映射到输出列时,我在Lookup组件中经常遇到以下错误:

enter image description here

我在大多数地方解决了这个问题,并且使用nvarchar(MAX)作为问题的原因,但是我仍然得到它,即使输入和输出列的类型是nvarchar(100)。知道我为什么会收到这个错误吗?我曾尝试在源数据上使用数据转换,但没有任何成功!

修改

您可以在下面找到我的查找配置(命名查找更新行)

的屏幕截图

enter image description here

enter image description here

enter image description here

And thhis happens when I drag "PaymentNature" and "PieceTypeDisplay" to its corresponding mappings

enter image description here

编辑2

当我在文本编辑器中打开与项目相关的.dtsx文件时,我将几种数据类型设置为 nText (如下所示),我认为这是我问题的原因。< / p>

dataType="nText"

cachedDataType="nText"

我将这些行分别更改为以下行:

dataType="wstr"
length="100"

cachedDataType="wstr"
cachedLength="100"

但是当我构建时,我的更改会消失,并且再次设置 ntext 类型。

2 个答案:

答案 0 :(得分:0)

摆脱BLOB类型的解决方案是在高级编辑器中更改数据流中组件的数据类型(SSIS数据类型)。

  1. 对于每个组件,右键单击它,然后选择“显示高级 编辑“

  2. 单击“输入和输出属性”列

  3. 对于其中列出的所有输入和输出列,将 DT_NEXT 的数据类型更改为 DT_WSTR ,同时选择适当的长度

  4. enter image description here

答案 1 :(得分:0)

这对我不起作用,因为我正在使用ODBC数据源。

我必须使用ODBC Source Editor中的SQL命令文本框将我的Blob表字段作为varchar(max)进行转换,然后转到高级编辑器并编辑我将CAST作为DataType字符串[DT_STR]的所有ODBC源输出列]。

希望这对某人有帮助。