最近使用oracle10刪除表以後,發現在all_objects裏還有類似於BIN$BO3lzvZ8SGmyIBuQGCUB4Q==$0的表名,經過查資料才發現,drop table不會真的刪除數據文件中的數據,只是清除了數據字典中的信息。在10g中drop table後都可以看到一條名字成了亂碼的記錄,雖然這條記錄是亂碼,還是可以通過purge table 原來的表名來清除回收站信息。
可以通過下面的代碼示例徹底刪除,比如:
SQL> select object_name from all_objects where owner='TEST'; OBJECT_NAME ------------------------------ BIN$3WXEfpNsTFimasLwA6DuOQ==$0 SQL> purge table test.t; Table purged. SQL> select object_name from all_objects where owner='TEST'; no rows selected
也可以閃回,恢復刪掉的數據表
SQL> show recyclebin SQL> show recyclebin; SQL> drop table test_objects; 表已刪除。 SQL> show recyclebin; ORIGINAL NAME RECYCLEBIN NAME OBJECT TYPE DROP TIME ---------------- ------------------------------ ------------ ------------------- TEST_OBJECTS BIN$ewhgTFxaSyuts++4swyE3Q==$0 TABLE 2008-03-03:15:19:42 SQL> flashback table "BIN$ewhgTFxaSyuts++4swyE3Q==$0" to before drop rename to t est_objects; 閃回完成。 SQL> show recyclebin