如何在 Oracle PL/SQL 中编写此数据库比较?

Posted

技术标签:

【中文标题】如何在 Oracle PL/SQL 中编写此数据库比较?【英文标题】:How do I write this database comparison in Oracle PL/SQL? 【发布时间】:2010-08-26 16:07:17 【问题描述】:

给定数据库 x、y 和匹配的模式:

//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 列的主键。

【问题讨论】:

【参考方案1】:

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

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

【讨论】:

SQL 错误:ORA-00933:SQL 命令未正确结束 00933. 00000 -“SQL 命令未正确结束 @deworde - 我将原来的 EXCEPT 更改为 MINUS 这只是括号内定义的派生表的别名。

以上是关于如何在 Oracle PL/SQL 中编写此数据库比较?的主要内容,如果未能解决你的问题,请参考以下文章