Informatica :类似 CDC 的东西,没有在目标 table 中添加任何列

Informatica : something like CDC without adding any column in target table

我在 oracle 中有一个名为 A 的源 table。 最初 Table A 被加载(复制)到 table B 接下来我在 Table A 上操作 DML,如 Insert 、 Delete 、 Update 。

我们如何在table B 中体现它? 无需在目标 table 中创建任何额外的列。 该行的时间戳不可用。

我必须比较源和目标中的行

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

请帮忙!!

以A、B为来源。

使用连接器进行完全外部连接(或者如果两个表都在同一个数据库中,您可以在源限定符中连接)

在表达式中根据以下场景创建一个标志。

  1. 一个关键字段为空 => flag='Delete',
  2. B 键字段为空 => flag='Insert',
  3. A 和 B 关键字段都存在 - 比较 A 和 B 的非关键字段,如果任何字段不相等,则将标志设置为 'Update' 否则 'No Change'

现在您可以在使用更新策略应用适当的函数后将记录发送到目标 (B)

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