1. 首页 > ITPUX技术网 > 正文

使用dbms_rectifier_diff來比較兩個表格資料

分甘同味,独食难肥:

<< 轉文自 http://springcs.pixnet.net/blog/post/21568213 >>

在Oracle replication應用中,介紹一個dbms_rectifier_diff package,
他可以拿來分析比較兩個表格 的內容差異,如果你有這樣的應用需求,直接使用這個套件可以省去自己寫code的時間。

SQL> select * from j1;

LBO QDATE SEQNUM NAME
———— ————– ———- ——————–
1 12-10月-05 99999 Jack
1 12-10月-05 99998 Jack
1 14-10月-05 99997 Jack
2 14-10月-05 99999 Tom
2 14-10月-05 99998 Tom
2 14-10月-05 99997 Tom
3 14-10月-05 99999 Joy
3 14-10月-05 99998 Joy
3 14-10月-05 99997 Joy
10 12-1月 -06 99999 god
1 11-10月-05 99996 Jack

已選取 11 個資料列.

SQL> select * from j2;

LBO QDATE SEQNUM NAME
———— ————– ———- ——————–
2 14-10月-05 99999 Tom
2 14-10月-05 99998 Tom
2 14-10月-05 99997 Tom
3 14-10月-05 99999 Joy
3 14-10月-05 99998 Joy
3 14-10月-05 99997 Joy
10 12-1月 -06 99999 god
1 13-11月-05 99999 Jack

已選取 8 個資料列.

建立一個架構完全相同的表格missrow,等會將用來儲存比較表格後發生差異的資料列

SQL> create table missrow as select * from j1 where 1 = 2;

已建立表格.

建立儲存差異資料rowid data的表格
SQL> create table missdata (r_id rowid,present varchar2(100),absent varchar2(100));

已建立表格.

開始進行比較程序
exec dbms_rectifier_diff.differences(sname1 => ‘SYS’,oname1 => ‘J1’,sname2 => ‘SYS’,oname2 => ‘J2’, where_clause => NULL,column_list => NULL,missing_rows_sname => ‘SYS’,missing_rows_oname1 => ‘missrow’,missing_rows_oname2 => ‘missdata’,missing_rows_site => ”,max_missing => 500,commit_rows => 100);

已順利完成 PL/SQL 程序.

檢查比較後差異的資料
SQL> select * from missrow;

LABORACCOUNT PDATE SEQ1 NAME
———— ————– ———- ——————–
1 11-10月-05 99996 Jack
1 12-10月-05 99998 Jack
1 12-10月-05 99999 Jack
1 14-10月-05 99997 Jack
1 13-11月-05 99999 Jack

SQL> select * from missdata;

R_ID PRESENT ABSENT
—————— —————————————- ————————————
AAAM2BAABAAAO2aAAA TEST.REGRESS.RDBMS.DEV.US.ORACLE.COM TEST.REGRESS.RDBMS.DEV.US.ORACLE.COM
AAAM2BAABAAAO2aAAB TEST.REGRESS.RDBMS.DEV.US.ORACLE.COM TEST.REGRESS.RDBMS.DEV.US.ORACLE.COM
AAAM2BAABAAAO2aAAC TEST.REGRESS.RDBMS.DEV.US.ORACLE.COM TEST.REGRESS.RDBMS.DEV.US.ORACLE.COM
AAAM2BAABAAAO2aAAD TEST.REGRESS.RDBMS.DEV.US.ORACLE.COM TEST.REGRESS.RDBMS.DEV.US.ORACLE.COM
AAAM2BAABAAAO2aAAE TEST.REGRESS.RDBMS.DEV.US.ORACLE.COM TEST.REGRESS.RDBMS.DEV.US.ORACLE.COM

本文由风哥教程整理发布,仅用于学习测试使用,转载注明出处:http://www.fgedu.net.cn/10327.html

联系我们

在线咨询:点击这里给我发消息

微信号:itpux-com

工作日:9:30-18:30,节假日休息