Oracleテーブルまたはビューの名前を変更する
-
08-07-2019 - |
質問
Oracleのテーブルまたはビューの名前を変更する構文は何ですか?
解決
ALTER TABLE mytable RENAME TO othertable
Oracle 10g
でも:
RENAME mytable TO othertable
他のヒント
使用できるテーブルの名前を変更するには:
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でテスト済み)
異なるスキーマのテーブルの名前を変更するには、次を試してください:
ALTER TABLE owner.mytable RENAME TO othertable;
名前変更コマンド(" mytableの名前をothertableに変更
"など)は、同じスキーマ内のテーブルの名前変更のみをサポートします。
同じ方法でインデックスの名前を変更できます:
alter index owner.index_name rename to new_name;
過去の10gの現在の回答は、ビューの名前を変更するために機能しなくなりました。 それでも機能する唯一の方法は、ビューをドロップして再作成することです。 これを行うために私が考えることができる最善の方法は次のとおりです:
ALL_VIEWS WHEREからテキストを選択WHERE owner = 'some_schema'およびVIEW_NAME = 'some_view';
返されるSQLの前にこれを追加します
ビューsome_schema.new_view_nameを...として作成または置換します。
古いビューをドロップ
some_schema.some_viewのドロップビュー;
所属していません StackOverflow