【问题标题】:Informatica skipped records need to be written to bad filesInformatica 跳过的记录需要写入坏文件
【发布时间】:2013-10-05 14:31:06
【问题描述】:

在我的例子中,我有一个表达式转换,它使用默认函数 ERROR('transformation') 来跳过里面的日期值格式不正确的记录。在这种情况下,跳过的行不会写入拒绝文件,因此我们遇到了协调问题。我需要将跳过的行写入坏文件。请帮助我如何实现这一点。

【问题讨论】:

    标签: informatica informatica-powercenter


    【解决方案1】:

    Update Strategy 转换放入您的映射并将这些行标记为拒绝(使用DD_REJECT 常量)。

    更多信息:Update Strategy Transformation

    【讨论】:

    • 嗨,Marek,谢谢。但我不需要更改我的设置。我需要在内部进行任何功能更改来处理这个。IIF(EndDate = '', NULL, to_date(EndDate,'YYYY-MM-DD'))。这是我们正在使用的表达式。实际上,我有一个疑问,如果我使用该默认值,并且如果出现任何无效行,该会话是否会失败。
    • 下面是对ERROR 函数的描述:导致 PowerCenter 集成服务跳过一行并发出一条错误消息,这是您定义的。错误消息显示在会话日志中。 PowerCenter 集成服务不会将这些跳过的行写入会话拒绝文件。 因此,您不能使用 ERROR 使 PowerCenter 拒绝行 - 您需要将它们标记为 DD_REJECT 或目标数据库需要拒绝它们.
    【解决方案2】:

    那么,不要使用 abort() 函数。然后使用路由器将格式错误的日期写入不同的目标。

    【讨论】:

    • 非常感谢。但现在我有一些其他问题,其中有两个表达式转换,其中都有日期转换,如 IIF(EndDate = '', NULL, to_date(EndDate,'YYYY-MM-DD'))。记录应该通过通过这两种转换,从而导致错误。但是在会话日志中,错误消息就像下面的错误转换 (s:'10/09/2013', s:YYYY-MM-DD) 我需要知道,这个 mm/dd/yyyy 格式来自哪里。注意:(我的源是一个平面文件)
    • 我没有看到问题。尽早检查格式错误的日期,并使用提到的Update Strategy 或使用Router 转换将这些行标记为错误。
    猜你喜欢
    • 2016-01-31
    • 2017-08-08
    • 2012-02-23
    • 1970-01-01
    • 2011-02-03
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多