2009-05-07 3 views

答えて

66
ALTER TABLE mytable RENAME TO othertable 

は異なるスキーマ内のテーブルの名前を変更するために
RENAME mytable TO othertable 
+0

10gより古いOracleバージョンでは、ビューの名前を変更できなくなりました。ドロップ/再作成はこれを行うための唯一の方法です。例については別の答えを確認してください。 – Wouter

10

、試してみてください。

ALTER TABLE owner.mytable RENAME TO othertable; 

renameコマンドのみをサポート( "rename mytable to othertable" のように)同じスキーマ内の表の名前を変更します。

RENAME mytable TO othertable; 

または

ALTER TABLE mytable RENAME TO othertable; 

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

興味深いことに
ALTER TABLE owner.mytable RENAME TO othertable; 

、ALTER VIEWは、名前の変更をサポートしていないあなたが使用することができ、テーブルの名前を変更する

25

ビュー。

RENAME myview TO otherview; 

RENAMEコマンドは、自分のスキーマのみのために、テーブル、ビュー、シーケンスおよびプライベート・シノニムのために働く:あなたはしかし、することができます。

ビューがスキーマ内にない場合は、新しい名前でビューを再コンパイルして、古いビューを削除できます。 (Oracle 10gのでテスト)

+1

11gで、あなたがそこに持っている最初の例は私にとってはうまくいかなかったが、2番目の例は... – rogerdpack

+0

RENAMEはまだ11gと12gで動作することに注意してください。http://docs.oracle.com/database/121/SQLRF/statements_9020.htm#SQLRF01608 –

+0

2017ありがとうございました:) – Ilaria

1

一つは、同じようrename indexesことができます。

alter index owner.index_name rename to new_name; 
+0

コメントにしてください答え。 – Wouter

1

過去はもはや現在の答えを10gには、ビューの名前を変更するために動作します。 まだ動作している唯一の方法は、ビューを削除して再作成することです。これを行うには、私は考えることができる 最良の方法は、次のようになります。

SELECT TEXT ALL_VIEWS FROM WHERE所有者= 'some_schema' とVIEW_NAME = 'some_view';

SQLの前でこれを追加

を返されるビューsome_schema.new_view_nameを作成または交換...

ドロップ古いビュー

ドロップビューsome_schema .some_view;

関連する問題