Oracle10g中的回收站

Oracle10g中的回收站

最近由于业务需要,要将数据库转为Oracle,不得以开始学习Oracle相关知识。

今天在使用PL/SQL删表时,发现该表被删除以后,就会自动出现名称类似为:BIN$OdPleidIDRPgQKjAIQAu+w==$0的表。以前一直使用mysql这样的小型数据,对于删表从来没有遇到过如此奇怪的问题。如果在PL/SQL中,直接删除,提示:SQL command not properly ended;如果直接使用SQL命令drop table "BIN$OdPleidIDRPgQKjAIQAu+w==$0"仍然不能正常删除。

进入OEM,在使用的方案的表中,看不到这样的表,但是对象列表中,却能看到它。这次,右键点击"移去",提示:无法删除表。ORA-38301:can not perform DDL/DML over objects in Recycle BIn。

再google一番以后,终于得到解决。原来,在Oracle10g数据库中,引入了一个回收站(Recycle Bin)的数据库对象。而放入回收站的表,是不能通过drop命令删除的,必须通过purge命令。

如果要删除指定名称的表,命令如下:

PURGE table "BIN$V3f/oYUITrCEF2cotS5JaA==$0"

如果直接清空所有回收站中的对象,命令如下:

PURGE RECYCLEBIN

如果要将回收站中的表恢复,命令如下:

FLASHBACK TABLE foo TO BEFORE DROP;

参考文章:

地址:http://www.fpvision.com.cn/InfoView/Article_296423.html

 

你可能感兴趣的:(oracle,sql,mysql,浏览器,Google)