在oracle中 怎样对比两个数据库中相同表的数据?

在oracle中 怎样对比两个数据库中相同表的数据?,第1张

如果两个数据库可以建立dblink,那么通过dblink就可以像在一个数据库一样去对比

如果不能建立dblink,那么就只能导出两行表,通过spool导出就可以。然后通过系统级别的命令去比对。我记得linux是有比较两个文件不同行的功能的。

如果认为两个都导出比较麻烦,那就导出一个,在导入另外一个库(注意变换名字,否则表明重复就麻烦了),然后再对比。

方法一、用PL/SQL DEVELOPER 来比较

1.登陆数据库A.

2.打开TOOLS菜单下的Compare User Objects

3.点Target Session,登陆数据库B

4.执行Compare

5.返回的是所有不同的对象以及更新语句[@more@]方法二、

1、对需要比较的表进行分析(可全表可抽样,自选),否则统计信息不准;

2、通过dba_tab_col_statistics表的column_name字段进行比较

select tz.table_name ,tz.column_name from dba_tab_col_statistics tz

WHERE tz.owner = 'BSS' AND TZ.TABLE_NAME LIKE 'BSS_%'

and (TZ.TABLE_NAME ,TZ.COLUMN_NAME) not in(

select TZT.TABLE_NAME ,TZT.COLUMN_NAME

from dba_tab_col_statistics@tz_bsstzt tzt

WHERE tzt.owner = 'BSS' AND TZT.TABLE_NAME LIKE 'BSS_%')


欢迎分享,转载请注明来源:内存溢出

原文地址:https://54852.com/sjk/6659107.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2023-03-26
下一篇2023-03-26

发表评论

登录后才能评论

评论列表(0条)

    保存