3

多くのテーブルに存在する同じ列を削除する必要があります。たとえば、「c」という名前の列は、多くのテーブルに存在します..t1、t2、t3 ...

1 つの解決策は、ALTERその列を持つテーブルの数と同じ数の列を削除するステートメントを作成することです。

ALTER単一のテーブルステートメントを使用して同じことを行う方法はありますか?

4

1 に答える 1

3

いいえ。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')

追加の心構えのためにテーブルの正確なリストを指定します。

于 2012-09-14T07:32:07.860 に答える