Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/database/9.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Sql 如何在不同的表中按名称更新列_Sql_Database_Oracle_Oracle11g - Fatal编程技术网

Sql 如何在不同的表中按名称更新列

Sql 如何在不同的表中按名称更新列,sql,database,oracle,oracle11g,Sql,Database,Oracle,Oracle11g,我在Oracledb中有许多表 我想得到所有包含(dep\u year或main\u year)等字段的表。 并用2016值而不是2014 如何在过程中执行类似操作。您可以查询所有选项卡列,构建更新,然后立即执行更新 begin for rc in (select 'update '||table_name || ' set '||column_name||' = 2016 where '||column_name||' = 2014' as stmt from all_tab_col

我在
Oracle
db中有许多表


我想得到所有包含
(dep\u year或main\u year)等字段的表。

并用
2016
值而不是
2014


如何在过程中执行类似操作。

您可以查询
所有选项卡列
,构建
更新
,然后
立即执行
更新

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;

您可以查询
所有选项卡列
,构建
更新
,然后
立即执行
更新

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;

对于每个必需的列,您可以找到包含该列的所有表:

SELECT table_name FROM user_tab_columns WHERE column_name = :columnName;
对于刚找到的每个表名,执行更新查询:

Execute immediate ('Update ' || table_name || ' set ' || column_name || ' = 2016 where ' || column_name || ' = 2014 ')

对于每个必需的列,您可以找到包含该列的所有表:

SELECT table_name FROM user_tab_columns WHERE column_name = :columnName;
对于刚找到的每个表名,执行更新查询:

Execute immediate ('Update ' || table_name || ' set ' || column_name || ' = 2016 where ' || column_name || ' = 2014 ')

这是一个奇怪的要求。。。我会考虑重新设计DB,这是一个奇怪的要求…我会考虑重新设计数据库。