【问题标题】:Informatica Power Center - ERROR: "Target table [TABLE_NAME] has no keys specified."Informatica Power Center - 错误:“目标表 [TABLE_NAME] 没有指定键。”
【发布时间】:2021-11-10 08:40:32
【问题描述】:

大家, 我在 Informatica PowerCenter 中遇到问题。

在我的映射中,我有 5 个对象:

  • 1x 源表
  • 1x 源限定符
  • 1x 表达式转换
  • 1x 更新策略
  • 1x 目标表

源表和目标表有没有主键,Informatica PowerCenter 怎么需要一个键?

【问题讨论】:

    标签: informatica informatica-powercenter


    【解决方案1】:

    我已尝试将我的工作流会话的“将源行视为”属性从“插入”更改为“数据驱动”并且它正在工作。

    【讨论】:

    • 您的答案可以通过额外的支持信息得到改进。请edit 添加更多详细信息,例如引用或文档,以便其他人可以确认您的答案是正确的。你可以找到更多关于如何写好答案的信息in the help center
    【解决方案2】:

    您的映射中有一个更新策略。它要求您必须在目标上定义一些键。 Infa 触发查询,如

    UPDATE tgt SET col =? WHERE KEY = ?
    

    问号 1 是更新列,问号 2 是键。 您可以将唯一键设置为主键。
    如果目标中没有主键或唯一键,请将除可更新列之外的所有列定义为键。 或者,您可以使用目标覆盖写 sql 来更新目标,但在这里,您也必须设置与上面类似的查询。
    应该设置数据驱动。

    【讨论】:

      【解决方案3】:

      在 Informatica 中,Target Transformation 中标记为键的端口指示应该使用什么来构建 DB 中的 Update 语句。它与数据库本身中定义的真实Primary Key 没有任何物理关系。通常,您在 Informatica 和 DB 中使用与键相同的列 - 但这不是必需的。 DB 不知道 Informatica 中的设置,反之亦然。

      在 Informatica 中多次定义同一个数据库表并具有不同的映射以使用不同的列作为键来更新数据甚至是完全有效的。

      但是请注意,如果您使用Update Strategy,您必须定义将哪些列用作键。

      【讨论】:

        猜你喜欢
        • 2011-04-11
        • 1970-01-01
        • 1970-01-01
        • 2014-01-31
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2021-06-06
        相关资源
        最近更新 更多