Oracle データベースのすべてのテーブルで、特定のパターンに一致する列を更新する必要があります。たとえば、すべてのテーブルにこの列があります *_CID はマスターテーブルへの外部キーであり、主キー CID があります
ありがとう
Oracle データベースのすべてのテーブルで、特定のパターンに一致する列を更新する必要があります。たとえば、すべてのテーブルにこの列があります *_CID はマスターテーブルへの外部キーであり、主キー CID があります
ありがとう
命名規則とクエリを使用できます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
。
私は私の質問に対する解決策を見つけました:
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;
ありがとう