【问题标题】:How do I add a column to the Lookup No Match Output in the SSIS Lookup Transformation?如何在 SSIS 查找转换中向查找不匹配输出中添加一列?
【发布时间】:2015-06-11 22:14:05
【问题描述】:

我试图通过删除(希望)不必要的转换来清理我拥有的 SSIS 包的一些混乱。我有一个查找转换,它按县名称匹配传入地址,并在匹配时添加一个包含县 FIPS 值的列。

我想向“无匹配输出”添加一个列,该列创建一个与 FIPS 列具有相同名称和类型但为空的列。我可以添加一列并为其命名,但是当我尝试分配数据类型时,它给了我如下错误:

Error at Get Demographics [LOOKUP County [893]]: The LOOKUP County does 
not allow setting output column datatype properties.

如果我尝试在没有数据类型的情况下保存它,则会收到列上缺少数据类型的错误。

知道如何在不添加衍生列转换的情况下做到这一点,或者这是我唯一的选择吗?

【问题讨论】:

    标签: ssis


    【解决方案1】:

    我会避免在转换的输出列中进行设置 - 这可能会导致一些有趣的行为,并且对于将来支持的人来说也是一种痛苦。

    如果您要发送“不匹配”行,添加一个 null,然后执行 Union All 以将所有行重新组合在一起,然后设置 Lookup(其中显示 指定如何处理没有匹配条目的行)来忽略失败,而不是将行重定向到不匹配的输出。您将不再有无匹配输出,也不需要派生列或联合全部 - the rows with no match will simply have a null column

    为了将来参考,请注意,如果您执行 Union All 以将两个流合并在一起,而一个流没有某些列,the rows from that flow will simply end up with nulls - 因此无需手动添加空值。

    【讨论】:

    • 你是我的英雄。一直以来,我都认为 SSIS 在选择 Ignore failure 时会丢弃不匹配的行。这是无限清洁的,绝对应该加快这个包的速度。谢谢!
    • @dageniusal 没问题 - 在 SSIS 中确实不是很清楚,因此我认为这是一个常见的错误。为什么他们不能只说“使用 NULL 值”或类似的话,我不知道。仅当您想对不匹配的行执行不同的操作时,才需要使用您使用的模式。如果您曾经确实想要删除不匹配的行,只需告诉他们转到不匹配的输出,然后不要将它们发送到任何地方。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2012-07-11
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2023-03-19
    • 1970-01-01
    • 2015-01-13
    相关资源
    最近更新 更多