web-dev-qa-db-ja.com

すべてのテーブルを削除するSQL開発者

「TBL_ *」で始まる名前のテーブルがありますが、dropを1つのコマンドですべて実行することはできません。

このテーブルを削除するにはどうすればよいですか?

15
Emad Aghayi

スクリプト、具体的にはループを作成できます。このループでは、user_tablesからTable_nameを選択し、このループを繰り返し、「execute immediate」コマンドを使用してそれらを削除します。

しかし、私はこれをお勧めします-SQLツールでは

  select 'drop table ' || table_name || ';' from user_tables where table_name like 'TBL_%'

次に、このクエリの出力をコピーしてSQLエディターに貼り付け、実行します。 sql +がエディターの場合、すべて貼り付けると、実行が開始されます。最初にメモ帳を使用して確認および編集したい場合があります。

ただし、1つのコマンドで複数のテーブルを削除することはできません。ドロップテーブルに関連する他のオプションについては、このリンクを確認してください http://docs.Oracle.com/cd/B19306_01/server.102/b14200/statements_9003.htm

20
T.S.
BEGIN

  --Bye Tables!
  FOR i IN (SELECT ut.table_name
              FROM USER_TABLES ut) LOOP
    EXECUTE IMMEDIATE 'drop table '|| i.table_name ||' CASCADE CONSTRAINTS ';
  END LOOP;

END;
13
Frank