从平面文件重定向 NULL 或空白值

Redirect NULL or blank values from Flat File

我正在将记录从平面文件源导入到 SQL table,其中有 4 列不接受 NULL 值。我想做的是将包含特定 4 个字段的 NULL 或空白值的记录重定向到平面文件目标。

下面可以看到table配置:

这是我的平面文件源中的示例,其中我在第一条记录中删除了 county_code,在第二条记录中删除了 UCN,在第三条记录中删除了 action_id。

如果我 运行 我的包是当前配置的,它会由于限制而出错:

The column status returned was: "The value violated the integrity constraints for the column.". 

所以我的问题是如何重定向这些行?我想我应该进行有条件的拆分,但我不确定,而且我也不知道如何配置它。到目前为止,我的尝试都是徒劳的。

有什么建议吗?

您能否先将数据加载到临时文件 table,然后对临时文件 table 使用 2 个单独的查询,或者插入到您的 table,或者写出到平面文件?

在平面文件源之后添加派生列转换。在那里您将测试不可为空的列是否为空。

为了便于调试,我会为每个有问题的列添加一个标志。

null_timestamp (ISNULL(timestamp) || LEN(RTRIM(timestamp)) == 0) ? true : false

这样的表达式将确定平面文件中的列是否为空或修剪后的长度是否为零。

一旦你测试了你的标志,你就会添加一个有条件的拆分。条件拆分基于布尔表达式路由行。我会向它添加一个 Bad Data 输出并使用像

这样的表达式
null_timestamp || null_country_code || null_etc

因为它们是布尔值,如果我们对这些值进行 OR 操作(如果其中任何一个为真),则整个表达式变为真并且行被路由到错误的数据路径。

我会简单地添加一个条件拆分并相应地命名输出: