oracle 两张表进行数据的拷贝 update select,insert select

今天需要用到将另外一张表的内容更新到本表,一个是update 一个是insert
1、先说UPDATE 语法:
update 表1 别名1 set (别名1.字段1,别名2.字段2)
=(select 别名2.字段1,别名2.字段2 from 表2 别名2 where 条件1)
where 条件2

注意:
1、条件1:一定要有表1.ID=表2.ID,建立关系
2、表2中一定不能重复值,否则会报不能有空值错误,因为两个数据集不一样。

实例:
update buyerattribute ba
   set ba.buyerattributeid =
       (select zz.buyerattributeid
          from zhejiangliantongbuyer_temp zz
         where  ba.buyerid = zz.buyerid)
          where ba.buyerattributeid != '4' and ba.buyerid in(select buyerid from zhejiangliantongbuyer_temp);
 如果表1和表2的字段完全匹配那么则可以直接使用
update 表1 别名1 set (别名.*)=(select 别名2.* from 表2 where 条件)
where 条件
2、Insert 语法:
Insert into 表1 (字段1,字段2,字段N) select 字段1,字段2,字段N from 表2
 insert into test2 (ID,Testname,Createtime,Falg) SELECT 10,TESTNAME,CREATcoETIME,FALG FROM TEST1

猜你喜欢

转载自jack-fengjj.iteye.com/blog/1993886