Oracle DB でテーブルとリサイクルビンの復元・削除

Oracle DB でテーブルを消すと、リサイクルビンというゴミ箱的な領域にゴミが残る。このリサイクルビンを含めたテーブルの削除を見ていこうと思う。

-- テーブルの消し方
TRUNCATE TABLE hoge PURGE MATERIALIZED VIEW LOG;  -- マテリアライズド・ビュー・ログを消す
TRUNCATE TABLE hoge REUSE STORAGE;                -- エクステント (領域) を解放しない。デフォルトは DROP STORAGE
DROP TABLE hoge PURGE;                            -- テーブル自体を消す

-- テーブルスペース削除 (テーブルがあっても強制削除)
-- 表領域の実体 DBF ファイルはなくならない。また、ユーザは削除されない。
DROP TABLESPACE my_tablespace INCLUDING CONTENTS;

-- リサイクルビンを確認する
SELECT TABLE_NAME FROM USER_TABLES WHERE TABLE_NAME LIKE 'BIN$%';
Show recyc

-- リサイクルビンから復元する
FLASHBACK TABLE "BIN$hoge" TO BEFORE DROP;

-- リサイクルビンのパージ (解放)
PURGE TABLE hoge_table;  -- 削除前のテーブル名を指定する。同じテーブルが複数回削除されている場合は一番古い1件が削除される
PURGE TABLE "BIN$hoge";  -- リサイクルビンの名前を指定して削除する
PURGE USER_RECYCLEBIN;
PURGE RECYCLEBIN;        -- ゴミ箱全体を空にする