日期:2014-05-16  浏览次数:20585 次

Oracle 删除表 产生【BIN$u6t1yoBPRMiiKu7SiPMIUw==$0】

雪影工作室版权所有,转载请注明【http://blog.csdn.net/lina791211】


一、灵感来源

2013-06-05 |  使用Oracle查询用户表是发现的信息

二、灵感来源


        闲着无聊,项目组需要用Java实现抽取各类数据库信息的功能,表过不提。在进行查看Oracle系统视图,查询当前用户视图下有一些不和谐的东西存在,度娘后知道了为啥会出现这个了。上图

select * from user_catalog


出现以下内容。

BIN$u6t1yoBPRMiiKu7SiPMIUw==$0

三、原因


1、从oracle10g开始删除数据库表的时候并不是真正删除,而是放到了recyclebin中,这个过程类似 windows里面删除的文件会被临时放到回收站中。
2、删除的表系统会自动给他重命名就是你看到的 【BIN$】开头的名字
3、通过 show recyclebin 命令可以查看被删掉的表的详细信息,或者查询
 select * from recyclebin;
4、收回表的命令:
   flashback table 原表名 to before drop;
5、情况回收站的命令:
   purge recyclebin;
6、如果不想删除的表经过回收站
   drop table 表名 purge;
   或者停用数据库的回收战功能
   10.1版本中,修改隐藏参数 _recyclebin
      alter system set "_recyclebin" = false;
   10.2版本中,
      alter system set recyclebin = off;


四、备用


        上面的解释来自于度娘,也经过了我的验证。谢谢度娘。