【发布时间】:2015-09-30 02:19:26
【问题描述】:
要求:
源表包含 5 列。我们在目标上复制 5 列中的 3 列。 SEQ_ID 是目标上的附加列。
当对不在目标表中的列执行更新操作时,增加SEQ_ID。 SEQ_ID 只有在对目标上存在的列执行更新时才会增加。
在要复制的选定列(ID、AGE、COL1)上启用无条件补充表级别日志记录:
来源: 表名:Test1(ID,AGE,COL1,COL2,COL3)
目标: 表名:Test1(ID,AGE,COL1,SEQ_ID)
我们创建了一个序列以在发生插入或更新时增加 SEQ_ID。
场景: 如果在这些列(ID、AGE、COL1)的源表上发生插入或更新,则增加 SEQ_ID, 如果更新发生在其他列(COL2,COL3) SEQ_ID 也会增加。
我们的要求是当其他列(COL2,COL3) 发生更新时,SEQ_ID 不应该增加。 我想跳过列(COL2,COL3) 上发生的更新事务。
来源: 初级提取 test_e1 提取测试_e1 用户 ID DBTUAT_GG,密码 dbt_1234 EXTTRAIL /DB_TRACK_GG/GGS/dirdat/dd 获取更新之前 --忽略更新 --忽略删除 无压缩更新 TABLE HARI.TEST1,COLS(ID,AGE,COL1),FILTER (ON UPDATE,IGNORE UPDATE,@STREQ(before.AGE, AGE) = 0);
数据泵测试_p1:
提取测试_P1
用户 ID DBTUAT_GG,密码 dbt_1234
RMTHOST 10.24.187.235, MGRPORT 7809,
RMTTRAIL /Trail_files/tt
--直通
表 DBTUAT_GG.TEST1;
目标: 目标 Repcat 文件: 编辑参数 test_r
复制测试_R 用户名 GGPROD,密码 GGPROD_123 SOURCEDEFS ./dirsql/def32.sql 处理碰撞 忽略删除 插入更新 映射 HARI.TEST1、目标 HARI.TEST1 和 SQLEXEC (ID test_num,QUERY "select GGPROD.test_seq.NEXTVAL test_val from dual", NOPARAMS), & COLMAP(USEDEFAULTS,SEQ_ID=test_num.test_val);
请提出任何可能的解决方案。
【问题讨论】: