2014-08-28 43 views

回答

1

您可以使用命名惯例和查询all_tab_columns

declare 
    cursor c is 
     select table_owner , column_name, table_name from all_tab_columns where column_name like '%_CID'; 
begin 
    for x in c loop 
     execute immediate 'update ' || x.table_owner || '.' || x.table_name ||' set ' || x.column_name||' = 0'; 
    end loop; 
end; 

如果您拥有有效的Fk,您也可以使用all_tab_constraints为您的主表启用FK,并获取r_constraint_name的列名称。

+0

的问题是,我不知道我是否有一个有效的FK的或不 – einstein007 2014-08-28 08:46:50

+0

执行此要求时,我有一个错误! – einstein007 2014-08-28 09:04:17

0

我找到了解决我的问题:

BEGIN 
    FOR x IN (SELECT owner, table_name, column_name FROM all_tab_columns) LOOP 
    EXECUTE IMMEDIATE 'update ' || x.owner || '.' || x.table_name ||' set ' || x.column_name||' = 0 where '||x.column_name||' = 1'; 
    END LOOP; 
END; 

感谢

相关问题