问题现象:删除数据库表,oracle中出现bin$XXXXXXXXXX==$0表 ,在对其 (bin$XXXXXXXXXX==$0)删除时,报 ORA-00933: SQL 命令未正确结束
出现原因:从oracle10g开始删除数据库表的时候并不是真正删除,删除的表系统会自动给他重命名 BIN$开头的名字 在把这些文件放到了recyclebin中,这个过程类似 windows里面删除的文件会被临时放到回收站中。
查看 bin$ 开头的表情况:
使用show tables 命令看不到这些表,查看这些表的命令如下:
命令一 :SELECT t.object_name,t.type ,t.original_name FROM user_recyclebin t; -- 查询数据库中bin$开头的表
命令二:show recyclebin --查看被删掉的表的详细信息
命令三: select * from recyclebin;
解决方案:
方案一:清空回收站(recyclebin)
命令 : PURGE recyclebin;
方案二:收回表的命令:
命令 :flashback table 原表名 to before drop;
方案三:直接删除表,不经过回收站
方法一: drop table 表名 purge;
方法二 :停用数据库的回收战功能
10.1版本中,修改隐藏参数 _recyclebin
alter system set "_recyclebin" = false;
10.2版本中,
alter system set recyclebin = off;