以下转自:http://blog.csdn.net/lansesl2008/article/details/16116749 作者:lansesl2008
小白今天删数据库表空间WUIDXTABLESPACE的时候,报了如下的错:
SQL> drop tablespace WUIDXTABLESPACE including contents and datafiles;
drop tablespace WUIDXTABLESPACE including contents and datafiles
*
ERROR at line 1:
ORA-00604: error occurred at recursive SQL level 1
ORA-38301: can not perform DDL/DML over objects in Recycle Bin
小白于是在网上搜啊搜,找到一个方法
SQL> purge tablespace WUIDXTABLESPACE;
Tablespace purged.
SQL> drop tablespace WUIDXTABLESPACE including contents and datafiles;
Tablespace dropped.
这里涉及到recycle bin的概念,她是和普通对象公用表空间存储空间的,或者说Recycle bin的对象要和普通对象抢夺存储空间。当存储空间不够时,oracle会按照先入先出的原则覆盖recycle bin的对象,也可以用如下方法来清空Recycle bin池:
1. 清空recycle bin中的表空间:
purge tablespace tablespace_name;
2. 清空某个表空间内的某个用户的对象:
pruge tablespace tablespace_name user user_name
3. 清除当前用户的对象:
purge recyclebin
4. 清除所有用户的对象:
purge dba_recyclebin
5. sysdba权限
drop table table_name purge 永久删除
6. 删除对象的关联索引:
purge index index_name