Oracle根据一个表更新另一个表的几种写法

来源:互联网 发布:淘宝网上开店步骤 编辑:程序博客网 时间:2024/06/12 22:58

1.

 

declare
cursor t1 is select * from tablename;
begin
for rec in t1 loop
update tablename t set t.detail=rec.jieshao where t.objectid=rec.objid;
end loop;
end;

 

2.

update   student   set   (name,id   )=  
  (select   name   ,id     from   (select   student.rowid   rd,student1.name,student1.id   from   student1,student   where   student1.int_id   =student.int_id)   tmp  
  where   student.rowid=tmp.rd);  
  commit;

 

 

3.

update test_a a set (a.name,a.age)=
(select b.name,b.age from test_b b where a.id = b.id) where exists
(select * from test_b c where c.id=a.id)

 

4.

UPDATE   t_A   SET   Djrq=    
  (  
          SELECT   djrq   FROM   t_B   WHERE   t_A.ID   =   T_B.ID    
          WHERE   ROWNUM   =   1    
  )  
  WHERE   t_A.ID   IN    
  (  
          SELECT   ID   FROM   t_B   WHERE   jwh='XX村'  
  )

 

 

 

5.

update tbl1 a
   set (a.col1, a.col2) = (select b.col1, b.col2
                              from tbl2 b
                              where a.key = b.key)
   where a.key in(select key from tbl2)

原创粉丝点击