多くのテーブルに存在する同じ列を削除する必要があります。たとえば、「c」という名前の列は、多くのテーブルに存在します..t1、t2、t3 ...
1 つの解決策は、ALTER
その列を持つテーブルの数と同じ数の列を削除するステートメントを作成することです。
ALTER
単一のテーブルステートメントを使用して同じことを行う方法はありますか?
いいえ。1 つのALTER TABLE
ステートメントで一度に複数のテーブルを変更することはできません。ALL_TAB_COLS
たとえば、に基づいて動的SQLを書くことができます
SELECT 'ALTER TABLE ' || owner || '.' || table_name || ' DROP COLUMN '|| column_name || ';'
FROM all_tab_columns
WHERE column_name = 'MY_UNWANTED_COLUMN'
AND owner = 'MY_OWNER'
/
次に、そのスクリプトを実行します。追加したいかもしれません
AND table_name IN ('MY_TAB1','MY_TAB2')
追加の心構えのためにテーブルの正確なリストを指定します。