0

在 Goldengate 中,我希望所有复制仅在满足某个条件时才发生,否则它应该等到条件满足。

假设我有一个表“T”,其中只有一行和一列“标志”。对于目标数据库中发生的每个复制,我想确保它仅在“标志”的值为“A”时发生,否则复制应该等到“标志”的值变为“A”。

我不确定这是否可能,请您帮助我并告诉我是否可能以及如何使之成为可能。

4

2 回答 2

0

您可以在提取过程本身中使用条件过滤,这样您就不必提取和复制与条件不匹配的那些。您可以使用评论中提到的 FILTER,也可以在 EXTRACT 中使用 SQLPREDICATE

IE

TABLE schema.T, SQLPREDICATE "WHERE FLAG = 'A'";

使用 SQLPREDICATE 的优点是您也可以使用复杂的 SQL“WHERE”条件过滤要提取的数据。

于 2017-11-14T18:10:50.597 回答
0

像过滤器这样的东西可以解决这个问题。

在提取 - TABLE schema.T, FILTER (FLAG = 'A');

您还应该确保过滤器中的任何列也在重做日志中并由 Extract 捕获以获得更快的性能。您可能还想将 FLAG 列添加到补充日志组(使用 ADD TRANDATA 可以做到这一点),然后在提取中也使用 LOGALLSUPCOLS。

缺口

于 2016-11-30T20:35:52.823 回答