微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

SSIS条件拆分拒绝文件

如何解决SSIS条件拆分拒绝文件

我想将数据迁移到目标表。 但是,我想为空值和大小超过20个字符的值制作一个拒绝文件。正如我对条件拆分所做的那样? 我做到了,但是没用:

"if len(mail)>10 caractère"

我将导出此值以拒绝文件

请问我该怎么做?

解决方法

设计

您可以有条件拆分直接执行此操作,但我建议您不要这样做。相反,请在“派生列”中计算布尔(真/假)条件,并将其添加到数据流中。然后,如果获得意外结果,则可以在“派生列”步骤和“条件拆分”步骤之间添加数据查看器

实施

将派生列添加到数据流。添加一个名为BadMail的新列。如果是真的,那么我们将路由到错误的文件。如果是真的,它将继续到目的地。

SSIS的表达式语言将使用三元运算符(test) ? true_condition : false_condition

我将测试空ISNULL(mail),大于20 len(mail) > 20和零长度len(mail) == 0的情况。

||是符合逻辑的,因此,如果这三个条件中的任何一个为真,那么我们需要将BadMail设置为true

(ISNULL(mail) || len(mail) > 20 || len(mail) == 0) ? true : false

您可以简化为消除三元运算符,但是我发现我的意图是明确的,在这些情况下会有所帮助。附带说明一下,如果仍然有意外结果的问题,请添加前面的“派生列”转换,并为每个条件(空,0或大于20个字符)添加一个列,然后可以单独检查它们。

现在,我们添加条件拆分

此处的表达式只是我们的新列BadMail,它将路由至输出路径1或您命名的任何名称。好邮件将通过默认输出路径。

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。