比较来自两个不同数据库的表 SQL Developer

Posted

技术标签:

【中文标题】比较来自两个不同数据库的表 SQL Developer【英文标题】:Compare tables from two different databases SQL Developer 【发布时间】:2013-01-29 19:42:54 【问题描述】:

我正在使用 SQL developer 连接数据库,我目前正在参与复制测试:

这里是源和目标的链接:

**Source**
Host Name - n****-s**n.o*s.lab
Port - 1521
Service Name - stgdev

**Target**

Host Name - *pr****1.****b.lab
Port - 1522
Service Name - S******

谁能告诉我如何编写查询来比较上述两个数据库中的表,数据库是相同的。 假设我想比较上述两个数据库中的 Account 表......查询是什么。请指教。

【问题讨论】:

您能否在两个数据库之一中创建一个指向另一个数据库的数据库链接(或者这样的数据库链接是否已经存在)? 不,我还没有创建任何数据库链接,我也不确定是否允许我创建链接。他们刚刚给了我只读权限。如果可以的话,请告诉我创建链接的过程。我可以在这里请求 DBA 授予我创建链接的权限。另外,应该在源端还是目标端创建链接……如果您提供查询,我将不胜感激……我不太擅长 SQL .. 【参考方案1】:

如果你有两个数据库之间的连接(数据库链接),你可以使用 dbms_comparison 包来设置预定的比较。事实上,如果您经常在多个表上执行此操作,您可能应该研究一下。

或者,您始终可以运行 select * from table@source 减去 select @ from table@target 并查看差异,但对于大型数据集,它并不是很有效。

查看 dbms_comparison 包docs link

【讨论】:

【参考方案2】:

Squirrel-sql 有一个 pluging 可以做到这一点!

【讨论】:

【参考方案3】:

我为红门工作。我们有一个执行表格数据比较的工具,允许您查看差异并生成一个部署脚本,使数据相同。由于您没有可以在数据库之间使用的数据库链接,我认为我们的工具会为您工作。

您将获得 14 天的全功能试用。您可以在这里http://www.red-gate.com/products/oracle-development/下载该工具。

【讨论】:

以上是关于比较来自两个不同数据库的表 SQL Developer的主要内容,如果未能解决你的问题,请参考以下文章

显示来自两个单独的表 MYSQL 的数据

如何在 SQL 服务器中将数据插入到两个不同的表中,同时在 SQL 中具有 ORDER# 主键

SQL 查询连接来自不同 fdb 数据库的表

如何制作一个实用方法来比较来自两个模式的任何 sql 查询的输出

如何对比两个相同数据库表的不同

检查SQL中的表中是不是连续出现两个不同的值?