1

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

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

此外,还有一种情况是我的列 20150928 更改为 F11、F12 等。这是为什么?

新手来了!对不起。

4

1 回答 1

3

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

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

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

于 2015-10-13T08:45:28.607 回答