ssis数据转换和空值处理

时间:2011-10-25 09:11:00

标签: ssis

我从excel电子表格中提取数据并使用数据转换组件将数据转换为相关类型。我正在测试这个包,并注意到如果它试图转换的值为null,则数据转换组件不会重定向一行。它是否正确?在这种情况下如何处理空值。我应该在堆栈中进一步检查空值吗?

1 个答案:

答案 0 :(得分:0)

当输入数据为空时,Data Conversion Transformation不会输出错误。可以把它想象为CAST(NULL AS char(10))或数据类型的tsql等价物。该转换应始终成功,NULL可以是任何数据类型。

转换的错误输出仅处理两类转换失败:错误(不兼容类型)和截断。

如果希望不允许字段中的空值,我会在数据流中的某处使用条件拆分来过滤掉那些行

不影响数据转换转换的NULL值的快速演示

在OLE DB源代码中,我发送了一行具有不同数据类型的空值

SELECT
    CAST(NULL AS int) AS null_int
,   CAST(NULL AS varchar(10)) AS null_varchar
,   CAST(NULL AS nchar(5)) AS null_nchar
,   CAST(NULL AS decimal(5,4)) AS null_decimal

enter image description here

在数据转换中,我尝试使用安全的东西(int到nvarchar)和那些不太常见的东西(nchar to boolean) enter image description here