2010-08-26 27 views
0

鉴于数据库的x,y具有匹配模式:如何在Oracle PL/SQL中编写此数据库比较?

//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 

假设表是一个简单的系统,至多有2列主键。

+0

为什么downvote? – deworde 2010-08-27 08:17:00

回答

3

因此,您需要x中所有主键的列表,除非键和数据(即整行)相同。我认为这应该做到这一点。

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

SQL错误:ORA-00933:SQL命令未正确结束 00933. 00000 - “SQL命令没有正确结束 – deworde 2010-08-26 16:18:35

+0

@deworde - 我将最初那里的'EXCEPT'改为了'MINUS' – 2010-08-26 16:19:55

+0

看起来不错,谢谢 – deworde 2010-08-26 16:22:42