ORACLEデータベースのスキーマにある、全テーブルのデータを削除するtruncate table文を作成する方法について掲載しています。
※実行前には、くれぐれもご注意ください。
ORACLEデータベースの、あるスキーマに存在する
全てのテーブルのデータをいったん全部削除したい。
だけど、テーブルをDROPして再度CREATEするのは恐い、、、
truncate tableを使えばできるけど、全テーブルに対してSQL作るのが面倒。。
そんなときに使えるのが、以下のSQLです。
※TRUNCATEはDMLではなくDDLなので、ロールバックできないのでご注意を!
SELECT 'TRUNCATE TABLE ' || table_name || ';' FROM USER_ALL_TABLES
取得できる結果は、当該データベースのスキーマに
HOGE, HAGE, HIGEテーブルが存在する場合、以下のようになります。
'TRUNCATETABLE'||TABLE_NAME||';' |
---|
TRUNCATE TABLE HOGE; |
TRUNCATE TABLE HAGE; |
TRUNCATE TABLE HIGE; |
これらをCSEなどに全て貼り付けて、「一括実行」してやると、
ORACLEデータベースの当該スキーマに存在する全てのテーブル情報を一括で削除できます。
※TRUNCATEはDMLではなくDDLなので、ロールバックできないのでご注意を!
ORACLEトップへ