以下の内容はhttps://shinsuke789.hatenablog.jp/entry/20110620/1308535899より取得しました。


Oracleでテーブルを一括で削除する方法

データをインポートするときにテーブル内にデータがあるとややこしくなるので、事前にテーブルの削除またはデータの削除が必要になります。
1つずつ消してもいいのですが手間がかかるので他の方法を探していたら動的SQLなるものを見つけたのでそれを参考に一括削除SQLを作ってみました。


systemでログインしdba_usersのownerで絞ってもいいのですが、他のテーブルが消えたら恐ろしいので各ユーザー毎に削除する形を取りました。

削除するテーブルのあるユーザーでログインしてください。

set serveroutput on size 10000;
begin
	for cur in (select table_name from user_tables)
	loop
		dbms_output.put_line(cur.table_name);
		execute immediate 'drop table ' || cur.table_name || ' cascade constraints';
	end loop;
end;
/


#追記 2012/06/26
インポート時にシーケンスがあれば削除する必要があるので追記しておきます。
シーケンスを一括で削除するには次のコードを実行します。

set serveroutput on size 10000;
begin
	for cur in (select sequence_name from user_sequences)
	loop
		dbms_output.put_line(cur.sequence_name);
		execute immediate 'drop sequence ' || cur.sequence_name;
	end loop;
end;
/


一応、削除対象のテーブル名を表示するように書いています。
一括で削除されるので本番DBをつついてないかなど念入りにチェックしてから実行してください。


アシスト教育部

ソフトバンククリエイティブ 2010-03-18
売り上げランキング : 31236



関連商品








以上の内容はhttps://shinsuke789.hatenablog.jp/entry/20110620/1308535899より取得しました。
このページはhttp://font.textar.tv/のウェブフォントを使用してます

不具合報告/要望等はこちらへお願いします。
モバイルやる夫Viewer Ver0.14