Chinaunix首页 | 论坛 | 博客
  • 博客访问: 5439702
  • 博文数量: 895
  • 博客积分: 17977
  • 博客等级: 上将
  • 技术积分: 8691
  • 用 户 组: 普通用户
  • 注册时间: 2005-08-26 09:59
个人简介

一个好老好老的老程序员了。

文章分类

全部博文(895)

文章存档

2021年(2)

2020年(10)

2019年(40)

2018年(88)

2017年(130)

2015年(5)

2014年(12)

2013年(41)

2012年(36)

2011年(272)

2010年(1)

2009年(53)

2008年(65)

2007年(47)

2006年(81)

2005年(12)

分类: Oracle

2007-09-19 16:40:13

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;

阅读(3898) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~