小白今天删数据库表空间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
本文介绍了在Oracle数据库中删除表空间WUIDXTABLESPACE时遇到的ORA-00604和ORA-38301错误及其解决方法。通过使用purge命令清理回收站中的表空间内容,最终成功删除了目标表空间。
2065

被折叠的 条评论
为什么被折叠?



