Ibm data replication IBM数据复制-如何从另一个表检索和复制列?

Ibm data replication IBM数据复制-如何从另一个表检索和复制列?,ibm-data-replication,Ibm Data Replication,站点:Oracle Exadata作为源,Netezza作为目标 场景:表A的记录被复制到目标,在复制过程中,这些记录将被标记为表B中的特定日期(也称为运行日期) 表A(包含许多记录) Col1,Col2,Col3。。。运行日期 表B(在任何时间点仅包含1条记录) Rundate,可乐,可乐…可乐 这些表之间没有可用的公用键。我尝试使用%GETCOL函数检索列并遇到问题 我怎样才能做到这一点? 解决方案会对性能产生什么影响?实现这一点的方法是通过源代码派生列中的用户出口。 用户出口可以是Java

站点:Oracle Exadata作为源,Netezza作为目标

场景:表A的记录被复制到目标,在复制过程中,这些记录将被标记为表B中的特定日期(也称为运行日期)

表A(包含许多记录) Col1,Col2,Col3。。。运行日期

表B(在任何时间点仅包含1条记录) Rundate,可乐,可乐…可乐

这些表之间没有可用的公用键。我尝试使用%GETCOL函数检索列并遇到问题

我怎样才能做到这一点?
解决方案会对性能产生什么影响?

实现这一点的方法是通过源代码派生列中的用户出口。 用户出口可以是Java,也可以是PL/SQL中的存储过程 用户出口只需执行类似于
从表B中选择rundate,其中rownum=1
,然后通过输出参数将其传递回CDC 用于填充源派生列的表达式将是%USERFUNC

至于对订阅性能的影响,这实际上取决于存储过程必须做什么以及它的编写效率,例如,如果它是以这样一种方式编写或实现的,即数据和代码在复制开始后的第一次调用后保留在内存中,则影响将小于每次调用都需要磁盘读取的情况,。顺便说一句,使用%GETCOL并非没有成本,因为它意味着对处理的每一行操作都要读入数据库。
通常,Java被认为比存储过程更高效。

实现这一点的方法是通过源代码派生列中的用户出口。 用户出口可以是Java,也可以是PL/SQL中的存储过程 用户出口只需执行类似于
从表B中选择rundate,其中rownum=1
,然后通过输出参数将其传递回CDC 用于填充源派生列的表达式将是%USERFUNC

至于对订阅性能的影响,这实际上取决于存储过程必须做什么以及它的编写效率,例如,如果它是以这样一种方式编写或实现的,即数据和代码在复制开始后的第一次调用后保留在内存中,则影响将小于每次调用都需要磁盘读取的情况,。顺便说一句,使用%GETCOL并非没有成本,因为它意味着对处理的每一行操作都要读入数据库。 通常,Java被认为比存储过程更高效