Masataka Miki's Blog

すみません、わかりません。もっと勉強して改善します。

Oracle Recyclebin

   

Oracleでは、10gより、Dropしたオブジェクトは、一旦、リサイクルビン(Recyclebin)という、ゴミ箱のようなものに移動するようになった。
そこから復元(Flashback)する手順と、完全に削除(Purge)する手順。

1.まずはリサイクルビンの中を確認

SQL*Plusで、

show recyclebin;

または、

select * from recyclebin;

ちなみに、リサイクルビンに入れられたテーブルは、テーブル名がBIN$~となっている。

select table_name from user_tables where table_name like'BIN%';

2.リサイクルビンから復元

flashback table 元のテーブル名 to before drop;

または、

flashback table BIN$~ to before drop;

リサイクルビンに、同じ元のテーブル名が複数ある場合、直近のものが復元される。

3.リサイクルビンから削除

purge table 元のテーブル名;

または、

purge table 'BIN~';

リサイクルビンに、同じ元のテーブル名が複数ある場合、もっとも古いものが削除される。
また、すべて削除するなら、

purge recyclebin;

リサイクルビンに入れず、すぐに完全に削除する場合は、

drop table テーブル名 purge;

 - 技術