关于Oracle的回收站

    Oracle在执行"drop table tableName"进行表删除时,会在oracle的回收站中自动生成类似"BIN$ZhqhAYiZQzq3FIZvZM4s5w==$0"这样的表名。
    可用"select table_name from user_tables"指令查询如下:

         SQL> select table_name from user_tables;

             

            TABLE_NAME
             ------------------------------
         BIN$ZhqhAYiZQzq3FIZvZM4s5w==$0
         BIN$bwtVMZXxQDGty2rpnvw65g==$0

     这些表名用“drop table tableName”指令无法删除,系统会提示如下错误:

         SQL> drop table BIN$ZhqhAYiZQzq3FIZvZM4s5w==$0

        

         ERROR at line 1:
         ORA-00933: SQL command not properly ended

  

    使用查询语句也无法查询到相关信息:

         SQL> select * from BIN$ZhqhAYiZQzq3FIZvZM4s5w==$0;

 

         ERROR at line 1:
         ORA-00933: SQL command not properly ended

  

    那么,该如何删除这些表呢?这些表又是如何生成的呢?


   其实:
        drop table tableName;将tableName表放到Oracle的回收站里;
        flashback table "BIN$ZhqhAYiZQzq3FIZvZM4s5w==$0" to before drop; 将表从回收站中还原;

        drop table books purge;绕过回收站,彻底删除;

 

    建议先 
        purge recyclebin; 清除当前用户的回收站,不会影响其他用户的回收站 
    或者 
        purge table tableName;清除回收站内指定的表(tableName为真实表名而不是回收站里生成的表名)

  

    例子:(测试例子)

         SQL>  create table test(id number);

         SQL> drop table test;

         ......

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值