如何在 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 中编写此数据库比较?的主要内容,如果未能解决你的问题,请参考以下文章

在 ubuntu 的 Oracle Sql 中,如何打开编辑器来编写 PL/SQL?

我可以在 oracle pl/sql developer 中使用此代码吗

如何在 Oracle PL/SQL 过程的开始部分之后声明游标

如何在 Pl/SQL 中编写正则表达式匹配模式?

Oracle:使用 SQL 或 PL/SQL 提取文件扩展名的最快方法

PL/SQL Oracle Mutant table-如何遇到这个问题?