我想了解如果CDC启用IBM IMS段和IBM DB2表源能够提供 前后快照更改值< / em> (如触发器中的Oracle .OLD和.NEW 值),以便两者都可以用于进一步处理。
注意:
非常感谢任何帮助,谢谢。
答案 0 :(得分:0)
我不相信CDC会在数据之前捕获它从DBMS日志数据编译的更改消息。它的主要目的是发出将数据从一个数据库复制到另一个数据库所需的最少数量的命令。如果要保留数据状态以便查询,则需要在处理更改消息之前拍摄副本数据库的快照。
或者对于Db2,使用Db2 10中添加的temporal tables功能可能更容易,因为它允许您定义应该驱动快照的更改。然后,您可以使用临时SQL查询访问时态数据。
SELECT … FROM…period specification
答案 1 :(得分:0)
使用新旧引用的示例触发器......
CREATE TRIGGER danny117
NO CASCADE BEFORE Update ON mylib.myfile
REFERENCING NEW AS N old as O
FOR EACH ROW
-- don't let the claim change and force upper case
--just do something automatically on update blah...
BEGIN ATOMIC
SET N.claim = ucase(O.claim);
END
答案 2 :(得分:0)
使用PowerExchange 9.1.0和9.6:
在无法通过powerexchange for DB2数据库处理快照数据之前。最近,我从事一个迁移项目,我认为像使用SCN编号的Oracle CDC一样,db2应该有某种东西可以从任何所需的位置启动记录器。但是令我惊讶的是,Inforamtica的全球支持确认了PowerExchange无法捕获快照数据。 他们谈论的是实现和取消实现目标,当时我不了解这些目标,后来我发现它们意味着要导出和导入历史数据。
即使您拥有启用CDC的表,也无法在从PWX快照之前捕获数据。
DB2从DB2日志中读取捕获数据,该数据具有U / I / D之类的操作标记,足以使PowerExchange继续进行。