「$BIN+...+ XX」という命名規則でテーブルが作成されてしまう(リサイクルビン機能)

TABLEをDROPしたタイミングで、「$BIN+...+ XX」という命名規則でテーブルが勝手に作成される。このテーブルはSQL*Plusから閲覧することはできない。

また、Oracle Enterprise Managerを使用して削除しようとすると、


「ORA-38301: リサイクルビンのオブジェクトにDDL/DMLを実行できません。

が発生し、削除することはできない。

実はOracle10gより「ごみ箱(=リサイクルビン RECYCLEBIN)」機能が実装されており、DROP TABLE文を発行した際、Oracleは「$BIN+...+ XX」という命名規則で自動的にオブジェクト(テーブル)を生成する。
※ただし、ユーザーの表領域を「SYSTEM」に作成していた場合には、作成されるがすぐに削除されるようです。

ゴミ箱の内容は、テーブルスペースの容量が不足すると自動的に削除される。

以下、ごみ箱(リサイクルビン)に対する操作・設定SQLを挙げる(SQL*Plusを使用する際のOracle Clientも10gのものを使用すること)。


■ごみ箱(リサイクルビン)の確認方法
SQL*Plusでごみ箱を確認したいユーザーで接続し、
SHOW RECYCLEBIN;
を実行。

■ごみ箱(リサイクルビン)の内容を削除する方法
SQL*Plusでごみ箱を確認したいユーザーで接続し、
PURGE USER_RECYCLEBIN;
を実行。

■ごみ箱(リサイクルビン)機能を使用しない(する)よう設定する方法
SQL*Plus管理者権限のあるユーザーで接続し、
ALTER SYSTEM SET RECYCLEBIN = OFF;
または
ALTER SYSTEM SET RECYCLEBIN = ON;
を実行。