单位系统里的表被人不小心删掉了几个
现在用
select * from user_RECYCLEBIN
可以列出被删除的表,而且字段can_undrop是yes为什么用
flashback table 表名 to before drop 命令
总是提示ORA-38305:对象不在回收站中
还有,出来的object_name很长
类似:BIN$idLd7DR3UWjgQ5aWAQFRaA==$0
select * from "BIN$idLd7DR3UWjgQ5aWAQFRaA==$0"也提示没有表存在

解决方案 »

  1.   

    你用flashback命令的时候,表名不能使用回收站的名字,应该用表被删除的时候的名字。回收站的表名是无法直接使用的。
      

  2.   


    楼主用这条语句看看,可有结果。 
    select original_name,object_name from recyclebin;必须要对象在回收站里才能进行恢复。 在删除时,如果指定purge 参数,表将直接删除,不会写到recyclebin中。此时是恢复不了的。 还有一点, 就是Flashback 不支持 sys 和system 用户。 即这2个用户下的对象是无法通过flashback 进行恢复的。 
    Oracle Flashback 技术 总结 
    http://blog.csdn.net/tianlesoftware/archive/2009/10/16/4677378.aspx------------------------------------------------------------------------------ 
    Blog: http://blog.csdn.net/tianlesoftware 
    网上资源: http://tianlesoftware.download.csdn.net 
    相关视频:http://blog.csdn.net/tianlesoftware/archive/2009/11/27/4886500.aspx 
    DBA1 群:62697716(满); DBA2 群:62697977
      

  3.   


    --flashback table tbname to timestamp  to_timestamp('时间','yyyy-mm-dd hh24:mi:ss')
    --这个时间必须是你删除此表的时间前面';
    --还要把你的表enable row movement 23:18:50 SQL> 
    已写入 file afiedt  1* select *  from xs where to_char(trunc(cssj,'yy'),'yyyy')='1984'
    23:19:31 SQL> /XH     XM       ZYM        XB CSSJ                  ZXF
    ------ -------- ---------- -- -------------- ----------
    BZ
    --------------------------------------------------------------------------------
    061109 张强民   计算机     男 11-8月 -84             50
    061201 王敏     通信工程   男 10-1月 -84             42
    061204 马琳琳   通信工程   女 10-2月 -84             42XH     XM       ZYM        XB CSSJ                  ZXF
    ------ -------- ---------- -- -------------- ----------
    BZ
    --------------------------------------------------------------------------------
    061216 孙祥欣   通信工程   女 09-3月 -84             4223:19:32 SQL> delete from xs where to_char(trunc(cssj,'yy'),'yyyy')='1984';已删除4行。23:20:07 SQL> commit;提交完成。23:20:10 SQL> alter table xs enable row movement;表已更改。23:22:16 SQL> flashback table xs to timestamp
    23:23:25   2  to_timestamp('2010-06-25 23:20:05','yyyy-mm-dd hh24:mi:ss');闪回完成。23:26:19 SQL> select * from xs where to_char(trunc(cssj,'yy'),'yyyy')='1984';XH     XM       ZYM        XB CSSJ                  ZXF
    ------ -------- ---------- -- -------------- ----------
    BZ
    --------------------------------------------------------------------------------
    061109 张强民   计算机     男 11-8月 -84             50
    061201 王敏     通信工程   男 10-1月 -84             42
    061204 马琳琳   通信工程   女 10-2月 -84             42XH     XM       ZYM        XB CSSJ                  ZXF
    ------ -------- ---------- -- -------------- ----------
    BZ
    --------------------------------------------------------------------------------
    061216 孙祥欣   通信工程   女 09-3月 -84             42
      

  4.   


    --也可以这样
    23:42:02 SQL> drop table xs;表已删除。23:42:11 SQL> select * from xs;
    select * from xs
                  *
    第 1 行出现错误:
    ORA-00942: 表或视图不存在
    23:42:44 SQL> flashback table xs to before drop;闪回完成。23:43:08 SQL> select * from xs where rownum<=3;XH     XM       ZYM        XB CSSJ                  ZXF
    ------ -------- ---------- -- -------------- ----------
    BZ
    ----------------------------------------------------------------
    061101 王林     计算机     男 10-2月 -86             50
    061102 程明     计算机     男 01-2月 -87             50
    061103 王燕     计算机     女 06-10月-85             50