要求:
源表包含 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 不应该增加。我想跳过 column(COL2,COL3) 上发生的更新事务。
来源:主提取 test_e1 EXTRACT TEST_e1 USERID DBTUAT_GG,PASSWORD dbt_1234 EXTTRAIL /DB_TRACK_GG/GGS/dirdat/dd GETUPDATEBEFORES --IGNOREUPDATES --IGNOREDELETES NOCOMPRESSUPDATES TABLE HARI.TEST1,COLS(ID,AGE,COL1),FILTER (ON UPDATE,IGNORE UPDATE , @STREQ(之前.AGE, AGE) = 0);
数据泵 test_p1: EXTRACT TEST_P1 USERID DBTUAT_GG,PASSWORD dbt_1234 RMTHOST 10.24.187.235, MGRPORT 7809,
RMTTRAIL /Trail_files/tt --PASSTHRU TABLE DBTUAT_GG.TEST1;
目标:目标 Repcat 文件:编辑参数 test_r
REPLICAT TEST_R USERID GGPROD,PASSWORD GGPROD_123 SOURCEDEFS ./dirsql/def32.sql HANDLECOLLISIONS IGNOREDELETES INSERTMISSINGUPDATES MAP HARI.TEST1, TARGET 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);
请提出任何可能的解决方案。