我在Oracle
db。
我想获取包含(dep_year or main_year)
并使用2016
值而不是2014
如何在程序中做类似的事情。
答案 0 :(得分:2)
您可以查询all_tab_columns
,构建update
,然后execute immediate
update
。{/ p>
begin
for rc in (select 'update '||table_name || ' set '||column_name||' = 2016 where '||column_name||' = 2014' as stmt from all_tab_columns where column_name in ('DEP_YEAR', 'MAIN_YEAR'))
loop
execute immediate (rc.stmt);
end loop;
commit;
end;
答案 1 :(得分:0)
对于每个必需的列,您可以找到包含它的所有表:
SELECT table_name FROM user_tab_columns WHERE column_name = :columnName;
使用您刚找到的每个表名,执行更新查询:
Execute immediate ('Update ' || table_name || ' set ' || column_name || ' = 2016 where ' || column_name || ' = 2014 ')