2014-02-17 68 views
-1

如何比較在PL/SQL塊兩個不同的表如何在PL/SQL塊比較兩個不同的表

表A- T_tABLE1

BIZDAY DATE  
ACID NUMBER(12,0)  
TYPE VARCHAR2(10 CHAR) 
ADJDATE DATE   
SOURCE VARCHAR2(20 CHAR) 
DATEUPDATED DATE  

表2:

BIZDAY DATE  
ACID NUMBER 
TYPE VARCHAR2(20 BYTE) 
ADJDATE DATE  
SOURCE VARCHAR2(20 BYTE) 
DATEUPDATED DATE 

回答

0

要計算差異的數量

select count(*) 
    from 
(
(select * from table1 
    minus 
    select * from table2) 
union all 
(select * from table2 
    minus 
    select * from table1) 
); 

會告訴你有多少行table1中不表2 +表2中沒有表1

要獲取的實際數據比較

select * 
    from 
(
(select * from table1 
    minus 
    select * from table2) 
union all 
(select * from table2 
    minus 
    select * from table1) 
); 

另一種方法:

之前11gR1使用DBMS_RECTIFIER_DIFF

從11gR1或以上使用DBMS_COMPARISON

+0

謝謝..如果我想與多個表比較,我如何比較。 – user3318635

+0

我想檢查兩個表格中的表現(值)。結構可能相同,但其值可能不同。可以some1請幫助 – user3318635

+0

@ user3318635檢查數據檢查和構建工具的更新答案。 – SriniV

0

如果您的表具有主鍵,則還可以使用完整的外部聯接來查找這兩個表之間的差異。請看這個fiddle