日期:2014-05-17  浏览次数:21165 次

如何比较两个表的数据是否完全一致
现在有两个DB,每个DB都有同样的表。
如何根据用户指定的检索条件,判断两个DB中的相同表的数据是否完全一致?


------解决方案--------------------
1、最简单的两个db的表做minus。

2、将数据按照固定顺序spool出来,然后对spool出来的数据做diff。

------解决方案--------------------
按一定的顺序排序,直接做两个表的链接看看!
------解决方案--------------------
SQL code
可以直接用minus!

------解决方案--------------------
两个表 A 和 表B,表结构一样,那么

select * from A
minus
select * from B

有结果出来,说明两个表的数据就不一样。
你现在是两个DB,那么从其中一个建一个database link 连接到另外一个上面就行了。


至于第二种方法,可以不学,能用数据库本身功能实现的就用数据库本身的功能。



探讨
我是个新手,希望大家能说得明白些。

------解决方案--------------------
探讨
1、最简单的两个db的表做minus。

2、将数据按照固定顺序spool出来,然后对spool出来的数据做diff。

------解决方案--------------------
参考这个帖子:
http://topic.csdn.net/u/20080605/15/168b4cc0-c82f-469b-838d-6a64f98cd9a3.html
------解决方案--------------------
SQL code
WITH a AS
(SELECT 1 FROM dual
UNION ALL
SELECT 2 FROM dual
),b AS
(SELECT 1 FROM dual
UNION ALL
SELECT 3 FROM dual
)
(SELECT * FROM a 
MINUS
SELECT * FROM b)
UNION ALL
(SELECT * FROM b 
MINUS 
SELECT * FROM a)


--result:
2
3

------解决方案--------------------
假设在第一个db上建了dblink连接到第二个db上
create database link dblink_name connect to user_name identified by password using
连接字符串
select * from A
minus
select * from A@dblink_name