Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/235.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ssis 2008 SSIS:将派生列表达式中的Null值替换为0_Ssis 2008 - Fatal编程技术网

Ssis 2008 SSIS:将派生列表达式中的Null值替换为0

Ssis 2008 SSIS:将派生列表达式中的Null值替换为0,ssis-2008,Ssis 2008,我试图将excel文件的空值替换为0,但出现错误“数据类型DT_14和DT_WSTR与二进制运算符“==”不兼容”。 我使用的是一个派生列,到目前为止,这里是我的表达式 20150921==”?0:20150928 我也尝试过这个方法,ISNULL(20150921)?0:20150921,但是传递到目标的数据是20150921,而不是它的实际值 顺便说一下,20150921是字符串[DT_STR]类型 还有一个场景,我的专栏20150928变成了F11、F12等等。为什么 这里是新手! 很抱歉

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

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

还有一个场景,我的专栏20150928变成了F11、F12等等。为什么

这里是新手! 很抱歉。

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

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


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

将尝试使用此选项,谢谢!仅对最后一部分进行澄清。您的意思是我必须将Excel列标题写入此[20150921]?不,您不必像[20150921]那样命名列,只需将其用于SSIS中“派生列”框中的表达式形式。[20150921]==“”?0:(DT_I4)[20150921]如果没有括号,代码解释器会认为它不是一个列名,而是一个随机数。