Oracle中 更新80个表中的同一个字段 怎么写

来源:百度知道 编辑:UC知道 时间:2024/09/22 19:24:44
现在有 table1,table2,table3。。。。。。table80 80个表
他们包含同一个字段 code1
plsql中更新一个表的写法:
Update table1 set code1 ='100' where code ='200';

但是现在要更新的表很多,字段20多个,
code1 的值也有10多个
写这种sql 麻烦的很

现在想用一个字段 code1 =‘100’ 更新 table1 。。table80 表 为code1 = ‘200’

update table1,table2,。。table80 set code1 =‘100’ where code2 = ‘200’;(这个显然不行,呵呵)

每个表里面都有code1,code2吗?
条件都是code2='200'吗?
还有,数据库里面是不是只有80个表?
表的名字就是table1,table2……吗?详细的hi我吧
或者QQ 17369841

写个动态SQL的存储过程就可以了。
create or replace procedure MOW(PAR_NAME IN VARCHAR2,
PAR_NUM IN INTEGER,
PAR_VAL1 IN VARCHAR2,
PAR_VAL2 IN VARCHAR2
) IS
STR_SQL VARCHAR2(4000);
begin
FOR I IN 1 .. PAR_NUM LOOP
STR_SQL := 'UPDATE ' || PAR_NAME || TO_CHAR(I) ||
' SET CODE = ' || PAR_VAL1 || ' WHERE CODE = ' || PAR_VAL2;
EXECUTE_IMMEDIATE(STR_SQL);
END LOOP;
end MOW;

create or replace procedure updaet_80tables
(P1 IN VARCHAR2,P2 IN VARCHAR2 )
IS
cursor c is
select table_name from user_tables
where <加入查询出80个表的条件>;
v_SQL VARCHAR2(4000);
begin
for r in c loop