我在两个数据库中有两个表,其中一个是从另一个表中复制的(通过 informatica 映射,我不能通过简单的插入替换它),所以我需要查看每一列是否具有与原始表相同的数据。如果我想测试一列,我会:
Select column1
from
table1
minus
Select column1
from
table2@dblink
如果我对具有 100 列的表的每一列都执行此操作,那将是浪费时间。我试过这个来比较:
Select column1,column2,.....column N
from
table1
minus
Select column1,column2,.....column N
from
table2@dblink
但是,即使一列不匹配,它也会返回所有值。所以我想知道最好的方法是什么,以便我的脚本比较两个表并返回不具有相同值的列。
我想到的另一个标准是:
select
(case when T.column1 <> P.column1 then T.id else null),
...
...
...
from
table1 T,
schema.table1@dblink P
where
T.id=P.id
and T.date>='01-DEC-2012'
and T.date<='10-DEC-2012'
and P.date>='01-DEC-2012'
and P.date<='10-DEC-2012';
我曾经使用 date 功能来提高性能。