浏览 4850 次
锁定老帖子 主题:Oracle10g中的回收站
精华帖 (0) :: 良好帖 (0) :: 新手帖 (0) :: 隐藏帖 (0)
|
|
---|---|
作者 | 正文 |
发表时间:2007-09-11
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
声明:ITeye文章版权属于作者,受法律保护。没有作者书面许可不得转载。
推荐链接
|
|
返回顶楼 | |
发表时间:2007-09-11
在PL/SQL的浏览器中,有回收站这样一个栏,但是即使回收站内存在已被删除的对象,该栏也没有内容可显示。查询了PL/SQL的用户指南,其中有一段:
“如果你使用的是 Oracle10g 或更新版本,你可以恢复或清理你先前删掉的表,前提是如果这个特性在数据库里被允许的话。对于来自于回收站文件夹里的对象,你可以选择清理来永远地删除掉表和它的数据,或者你可以选择恢复来在原来的名称下或者在一个新的名称下恢复它” 但是,我不太明白“这个特性在数据库中被允许的话”的意思。其意思是,数据库本身还需要进行某些设置吗?望路过的朋友解释一下,万分感谢! |
|
返回顶楼 | |
发表时间:2007-09-11
10g中打开归档模式,flashback会自动运行,无需设置,如果没有使用归档模式,则没有办法使用flashback
|
|
返回顶楼 | |
发表时间:2007-09-11
感谢楼上的
|
|
返回顶楼 | |