SSIS:在派生列表达式

时间:2015-10-09 20:37:15

标签: ssis-2008

我正在尝试将excel文件的Null值替换为0,但出现错误“数据类型DT_14和DT_WSTR与二元运算符不兼容”==“。 我正在使用派生列,到目前为止这是我的表达 20150921 ==“”? 0:20150928 我也试过这个,ISNULL(20150921)? 0:20150921但传递到目的地的数据是20150921而不是其实际值。

顺便说一句,20150921是字符串[DT_STR] 类型。

此外,还有一种情况是我的专栏20150928变为F11,F12等等。那是为什么?

新手在这里! 遗憾。

1 个答案:

答案 0 :(得分:1)

您正在将数字(20150921)与字符串(“”)进行比较,这就是您收到错误的原因数据类型DT_14和DT_WSTR与二进制运算符“==”不兼容。不过你的表达式几乎是正确的,你只需要比较列的名称,而不是列的值。

实施例: 您有一个包含“Column1”列的Excel文件,其中包含数字(20150921)和一些空值。 SSIS将每个Excel列视为字符串,因此您必须通过表达式Column1 == "" ? 0 : (DT_I4)Column1对其进行转换。这意味着每个空值都将转换为0,否则它将被转换为整数(四个字节整数)。您还可以使用数据类型DT_I8。

编辑:如果您的列名为20150921,请尝试使用[20150921]。