oracle drop table时,在10g中bin开头表示已经删除的放在回收站的表,oracle在删除表时并没有彻底的删除,而是把表放入回收站!purge recyclebin清空回收站即可。10g的新特性flashback闪回区
SQL> select * from tab;
TNAME TABTYPE CLUSTERID
-------------------------------------------------------------------------------------------------------------------------------- ------------- ----------
BIN$7asyuy9fdsTgU4oIqMDIyg==$0 TABLE
T02 TABLE
T01 TABLE
BIN$7asyuy9idsTgU4oIqMDIyg==$0 TABLE
T03 TABLE
DEPT TABLE
EMP TABLE
BONUS TABLE
SALGRADE TABLE
DETAIL_DEPT TABLE
VU10 VIEW
VUTEST VIEW
BIN$7fWMwuLp1IzgU4oIqMDRBA==$0 TABLE
BIN$7fWMwuLr1IzgU4oIqMDRBA==$0 TABLE
BIN$7fWMwuLs1IzgU4oIqMDRBA==$0 TABLE
BIN$7fWMwuLt1IzgU4oIqMDRBA==$0 TABLE
16 rows selected.
SQL>
★recyclebin字典★
- 当误删除某些表时,可以通过命令恢复回来:
flashback table table_name to before drop;
- 查看是否开启了闪回功能:
select flashback_on from v$database;
- 如果确定某些表确实可以删除,可以使用下面的语句,就不会出现BIN$开头的表了
drop table table_name purge;
- 删除Bin开头的表,即已经drop但存在于回收站中的表:
- 查询所有此类表
SQL> select * from recyclebin where type='TABLE';
- 用来删除回收站中所有的表
SQL> PURGE RECYCLEBIN -------这语句就能清除所有以BIN开头的残留文件
SQL> purge recyclebin;
Recyclebin purged.
SQL> select * from tab;
TNAME TABTYPE CLUSTERID
-------------------------------------------------------------------------------------------------------------------------------- ------------- ----------
T02 TABLE
T01 TABLE
T03 TABLE
DEPT TABLE
EMP TABLE
BONUS TABLE
SALGRADE TABLE
DETAIL_DEPT TABLE
VU10 VIEW
VUTEST VIEW
10 rows selected.
SQL>
- 用来删除指定的表
SQL> PURGE TABLE TABLE_NAME
- 用来闪回被删除的表
SQL> FLASHBACK TABLE table_name TO BEFORE DROP;
- 可以在的Drop表时不产生Bin型表
SQL> DROP TABLE "TableName" purge;
- 设置falshback功能的开启和关闭
SQL>startup mount
SQL>alter database flashback on(off)