【发布时间】:2021-11-10 08:40:32
【问题描述】:
大家, 我在 Informatica PowerCenter 中遇到问题。
在我的映射中,我有 5 个对象:
- 1x 源表
- 1x 源限定符
- 1x 表达式转换
- 1x 更新策略
- 1x 目标表
源表和目标表有没有主键,Informatica PowerCenter 怎么需要一个键?
【问题讨论】:
标签: informatica informatica-powercenter
大家, 我在 Informatica PowerCenter 中遇到问题。
在我的映射中,我有 5 个对象:
源表和目标表有没有主键,Informatica PowerCenter 怎么需要一个键?
【问题讨论】:
标签: informatica informatica-powercenter
我已尝试将我的工作流会话的“将源行视为”属性从“插入”更改为“数据驱动”并且它正在工作。
【讨论】:
您的映射中有一个更新策略。它要求您必须在目标上定义一些键。 Infa 触发查询,如
UPDATE tgt SET col =? WHERE KEY = ?
问号 1 是更新列,问号 2 是键。
您可以将唯一键设置为主键。
如果目标中没有主键或唯一键,请将除可更新列之外的所有列定义为键。
或者,您可以使用目标覆盖写 sql 来更新目标,但在这里,您也必须设置与上面类似的查询。
应该设置数据驱动。
【讨论】:
在 Informatica 中,Target Transformation 中标记为键的端口指示应该使用什么来构建 DB 中的 Update 语句。它与数据库本身中定义的真实Primary Key 没有任何物理关系。通常,您在 Informatica 和 DB 中使用与键相同的列 - 但这不是必需的。 DB 不知道 Informatica 中的设置,反之亦然。
在 Informatica 中多次定义同一个数据库表并具有不同的映射以使用不同的列作为键来更新数据甚至是完全有效的。
但是请注意,如果您使用Update Strategy,您必须定义将哪些列用作键。
【讨论】: