SSIS和NULL值
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了SSIS和NULL值相关的知识,希望对你有一定的参考价值。
我有SSIS包。它有一个执行sql任务,从不同服务器上的表中获取一些配置值。因此,SSIS包获取这些配置值并将它们存储在SSIS中的变量中。这些变量在进一步的sql任务中用作参数。
我遇到的问题是,其中一些配置值是null
。因此,每当SSIS遇到整数类型的空值时,它会将其转换为0
并将其作为0
传递给进一步的任务,而不是将其作为null
传递
如果列的数据类型是日期,并且其值在配置表中为空,则SSIS会分配默认值12/30/1899 12:00:00 AM
并将默认值作为参数而不是null
值传递。
如何使SSIS包传递实际的空值而不是SSIS转换的值?
答案
我会将所有变量的数据类型更改为String,并更改Execute SQL Task命令以返回字符串值,例如使用CAST ... AS NVARCHAR(4000))
字符串变量通常更容易使用。
另一答案
如上所述使用字符串然后在SQL任务中尝试'select isnull([field],'null')'
这会将所有空值更改为字符串'null'。
这是一种hacky方式,但它可能会起作用。
另一答案
有各种选择。其中一个,你需要创建一个表达式,它将你的日期转换为null而不是最小日期值(“1899-12-30”)
这种转换的表达示例:
(DT_DATE)( REPORT_DATE ==(DT_DATE)"1899-12-30" ? NULL(DT_DATE) : REPORT_DATE )
以上是关于SSIS和NULL值的主要内容,如果未能解决你的问题,请参考以下文章