web-dev-qa-db-ja.com

Oracleテーブルまたはビューの名前を変更する

Oracleのテーブルまたはビューの名前を変更する構文は何ですか?

49
Steven
ALTER TABLE mytable RENAME TO othertable

Oracle 10gまた:

RENAME mytable TO othertable
80
Quassnoi

テーブルの名前を変更するには、次を使用できます。

RENAME mytable TO othertable;

または

ALTER TABLE mytable RENAME TO othertable;

または、別のスキーマが所有している場合:

ALTER TABLE owner.mytable RENAME TO othertable;

興味深いことに、ALTER VIEWはビューの名前変更をサポートしていません。ただし、次のことができます。

RENAME myview TO otherview;

RENAMEコマンドは、独自のスキーマに対してのみ、テーブル、ビュー、シーケンス、プライベートシノニムに対して機能します。

ビューがスキーマにない場合、新しい名前でビューを再コンパイルしてから、古いビューを削除できます。

(Oracle 10gでテスト済み)

27
Jeffrey Kemp

別のスキーマのテーブルの名前を変更するには、次を試してください。

ALTER TABLE owner.mytable RENAME TO othertable;

名前変更コマンド(「rename mytable to othertable ")は、同じスキーマ内のテーブルの名前変更のみをサポートします。

10
Pop

インデックス名の変更 同じ方法でできます:

alter index owner.index_name rename to new_name;
1
Maurício

10gを超えると、現在の回答はビューの名前変更に使用できなくなります。それでも機能する唯一の方法は、ビューをドロップして再作成することです。これを行うために私が考えることができる最良の方法は次のとおりです。

ALL_VIEWSからテキストを選択するWHERE owner = 'some_schema'およびVIEW_NAME = 'some_view';

返されるSQLの前にこれを追加します

ビューsome_schema.new_view_nameを作成または置換...

古いビューを削除する

ビューsome_schema.some_viewをドロップします。

1
Wouter