您的位置:首页 > 数据库 > Oracle

[ORACLE]关联表更新数据

2017-10-12 19:25 302 查看
1.UPDATE 表1 A SET (列1,列2) =

(SELECT C2,C3 FROM 表2 B WHERE b.C1=A.FORM_CODE)

where exists (select 1 from 表B where b.c1=a.form_code)

注:若返回多条则会报错

2.利用视图更新

update (select a.列1,b.列1 FROM 表1 A,表2 B

WHERE A.列2=B.列2)

SET a.列1=b.列1

注:A(列2) b(
4000
列2)必需是unique index或primary key,否则报错。

若a.列1、b.列1的列名相同,则可以给其起别名,如下:

update (select a.列1,b.列1 别名 FROM 表1 A,表2 B

WHERE A.列2=B.列2)

SET a.列1=别名

3.游标

declare

cursor cur is SELECT C1,C2,C3 FROM 表2;

begin

for my_cur in cur

loop

UPDATE 表1 A SET 列1=my_cur.C2,列2=my_cur.C3

where A.FORM_CODE=my_cur.C1;

end loop;

end;
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: