ORA-38301:can not perform DDL/DML over objects in Recycle Bin

小白今天删数据库表空间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

 

 

你可能感兴趣的:(ORA-38301:can not perform DDL/DML over objects in Recycle Bin)