Informatica:类似于CDC,而不在目标表中添加任何列

时间:2015-07-09 17:47:46

标签: informatica informatica-powercenter cdc oracle-cdc

我在oracle中有一个名为A的源表。 最初将表A加载(复制)到表B中 接下来我在表A上运行DML,如Insert,Delete,Update。

我们如何在表B中反映出来? 不在目标表中创建任何额外的列。 该行的时间戳不可用。

我必须比较源和目标

中的行

例如:如果在源中删除了一行,则应在目标中删除该行。      如果更新了一行,则在目标中更新,如果在源中不可用,则将其插入目标。

请帮忙!!

2 个答案:

答案 0 :(得分:1)

以A和B为来源。

使用木匠进行完全外部连接(或者如果两个表位于同一个数据库中,则可以加入源限定符)

在表达式中,根据以下方案创建标志。

  1. 关键字段为null => flag ='删除',
  2. B键字段为null => flag ='插入',
  3. A和B两个关键字段都存在 - 比较A和B的非关键字段,如果任何字段不相等,则设置标记为'更新'别的'没有变化'
  4. 现在,您可以在使用更新策略

    应用适当的功能后将记录发送到目标(B)

答案 1 :(得分:0)

如果您不想保留目标表中的操作(因为不允许额外的列),最快的方法就是 - 1)截断B 2)将A插入B