我有SSIS的包。它有一个执行sql任务,该任务从不同服务器上的表中获取一些配置值。因此,SSIS包获取这些配置值,并将它们存储在SSIS的变量中。这些变量在后续的sql任务中用作参数。
我遇到的问题是,其中一些配置值是null。因此,每当SSIS遇到整数类型的空值时,它都会将其转换为0,并将其作为0传递给进一步的任务,而不是作为null传递
如果列的数据类型是date,并且它在配置表中的值为null,则SSIS会分配一个默认值12/30/1899 12:00:00 AM,并将默认值作为参数传递,而不是传递null值。
如何让SSIS包传递实际的空值,而不是SSIS转换的值?
发布于 2014-02-12 07:04:58
我会将所有变量的Data Type更改为String,并更改Execute SQL Task命令以返回字符串值,例如使用CAST ...AS NVARCHAR ( 4000 ))
字符串变量通常更容易使用。
发布于 2016-03-11 07:48:01
如何使用前面提到的字符串,然后在SQL任务中尝试'select isnull(field,'null')‘
这会将所有空值更改为字符串“null”。
这是一种老生常谈的方式,但它可能会奏效。
发布于 2017-05-26 07:23:38
有多种选择。其中之一,您将需要创建一个表达式,它将您的日期转换为null,而不是最小日期值("1899-12-30")
这种转换的表达式示例:
(DT_DATE)( REPORT_DATE ==(DT_DATE)"1899-12-30" ? NULL(DT_DATE) : REPORT_DATE )https://stackoverflow.com/questions/21706939
复制相似问题