Oracleでテーブルまたはビューの名前を変更する構文は何ですか?
5 に答える
テーブルの名前を変更するには、次を使用できます。
RENAME mytable TO othertable;
また
ALTER TABLE mytable RENAME TO othertable;
または、別のスキーマが所有している場合:
ALTER TABLE owner.mytable RENAME TO othertable;
興味深いことに、ALTERVIEWはビューの名前変更をサポートしていません。ただし、次のことができます。
RENAME myview TO otherview;
RENAMEコマンドは、テーブル、ビュー、シーケンス、およびプライベートシノニムに対して、独自のスキーマに対してのみ機能します。
ビューがスキーマにない場合は、新しい名前でビューを再コンパイルしてから、古いビューを削除できます。
(Oracle 10gでテスト済み)
別のスキーマでテーブルの名前を変更するには、次を試してください。
ALTER TABLE owner.mytable RENAME TO othertable;
名前変更コマンド (" rename mytable to othertable
" など) は、同じスキーマ内のテーブルの名前変更のみをサポートします。
同じ方法でインデックスの名前を変更できます。
alter index owner.index_name rename to new_name;
10g を超えると、現在の回答はビューの名前変更には機能しなくなりました。まだ機能する唯一の方法は、ビューを削除して再作成することです。これを行うために私が考えることができる最良の方法は次のとおりです。
SELECT TEXT FROM ALL_VIEWS WHERE owner='some_schema' and VIEW_NAME='some_view';
返された SQL の前にこれを追加します
ビュー some_schema.new_view_name を作成または置換 ...
古いビューを削除する
ビューをドロップ some_schema.some_view;