有两张表
表a :  field1   field2   
         1        aa      
         2        a1       
         3        ad      
         4        as       
表b:   field1   field2   field3
         2        a1       bb
         4        ss       vf
         5        sd       ss
a.field1 = b.field1     a.field2 = b.field2
请教,怎么样能快速的比较表a和表b, 把表a中不同于表b的数据更新到表B中,并且把表b中field1值多余表a的记录删除?   
(就是 把a.field1中的 1、3 插入表b中; a.field1=4的field2值更新到b.field1=4中的field2中;并且删除b.field1中5的一条记录)
最后表b的结果应该是:
表b:   field1   field2   field3
         1        aa
         2        a1       bb
         3        ad
         4        as       vf
(实际中 a ,b两张表都是数据很大的表)

解决方案 »

  1.   

    可以用到复制技术,选出两个表的对应列,使用快照把b表的列的内容重新赋值.可以查一下oracle的复制技术,也可以实时操作的.
      

  2.   

    在摆渡里搜一下 oracle 复制  会有很多这方面的内容,先看看复制的用处,应该符合你的需要。
      

  3.   

    insert into b(field1,field2) select field1,field2 from a where not exists (select 1 from a,b where a.field1 = b.field1 and a.field2 = b.field2);delete from a where not exists (select 1 from a,b where a.field1 = b.field1 and a.field2 = b.field2);