`
pandonix
  • 浏览: 400003 次
  • 性别: Icon_minigender_1
  • 来自: 深圳
社区版块
存档分类
最新评论

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

 

  • 描述: PL/SQL中的表
  • 大小: 173 KB
  • 描述: OEM中的表
  • 大小: 460 KB
分享到:
评论
3 楼 pandonix 2007-09-11  
感谢楼上的
2 楼 magician 2007-09-11  
10g中打开归档模式,flashback会自动运行,无需设置,如果没有使用归档模式,则没有办法使用flashback
1 楼 pandonix 2007-09-11  
在PL/SQL的浏览器中,有回收站这样一个栏,但是即使回收站内存在已被删除的对象,该栏也没有内容可显示。查询了PL/SQL的用户指南,其中有一段:
“如果你使用的是 Oracle10g 或更新版本,你可以恢复或清理你先前删掉的表,前提是如果这个特性在数据库里被允许的话。对于来自于回收站文件夹里的对象,你可以选择清理来永远地删除掉表和它的数据,或者你可以选择恢复来在原来的名称下或者在一个新的名称下恢复它”
但是,我不太明白“这个特性在数据库中被允许的话”的意思。其意思是,数据库本身还需要进行某些设置吗?望路过的朋友解释一下,万分感谢!

相关推荐

Global site tag (gtag.js) - Google Analytics