declare
str_sql varchar2(1000);
begin
for alltables in (select table_name from user_tables) loop
for tablecolumns in (select column_name from user_tab_columns where table_name = alltables.table_name) loop
str_sql := 'update '||alltables.table_name||' set '||tablecolumns.column_name||' = ''B'' where '||tablecolumns.column_name||' = ''A''';
execute immediate str_sql;
end loop;
end loop;
commit;
end;
update 表名 set 字段名=‘B’ where 字段名=‘A’
1、查询哪些表含有某个字段名称
SELECT t.TABLE_NAME FROM user_tab_columns t where t.COLUMN_NAME = '';
2、修改该字段的值
可以写一个存储过程实现
在存储过程中,动态拼接sql,然后执行
给一个参考示例
FOR p_name IN (SELECT table_name
FROM user_tab_columns col
WHERE col.COLUMN_NAME = 'YOUR_COL_NAME') LOOP
cmd := 'update ' || p_name.table_name || ' set YOUR_COL_NAME = ''B';
BEGIN
EXECUTE IMMEDIATE cmd;
EXCEPTION
WHEN NO_DATA_FOUND THEN
NULL;
WHEN OTHERS THEN
-- Consider logging the error and then re-raise
NULL;
END;
END LOOP;