简体   繁体   中英

How do I write this database comparison in Oracle PL/SQL?

Given databases x, y with matching schemas:

//for all entries in x.MY_TABLE
//        if PRIMARY_KEY of entry exists in y.MY_TABLE
//            if {data of entry in x} doesn't match {data of matching entry in y}
//                print PRIMARY_KEY
//        else
//            print PRIMARY_KEY

Assume that the table is a simple system with at most a 2-column primary key.

So you want a list of all primary keys in x unless the key and data (ie the entire row) is the same. I think this should do it.

SELECT PRIMARY_KEY
FROM
(
SELECT * FROM x.MY_TABLE
MINUS
SELECT * FROM y.MY_TABLE
) T;

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM