oracle的dba账号恢复当天删除的数据

 

12月2日,我误删了数据库,老大很不爽,命我再30分钟之内恢复,情急之下,写了一个存储过程,oracle账号适用于恢复当天删除了表而没有记住表的名称。

 

只需要传入当天的时间,调用一下就ok了。

 

Sql代码 

存储过程如下:  

  create or replace procedure proc_databack (deletetime in varchar2)  

  as 

  –把当天已经删除的信息查询出来放入游标  

  cursor mycursor is(select  object_name   from recyclebin  where droptime like deletetime);  

  temp_emp    varchar2(2000);  

  vflash_back   varchar2(2000);  

  begin 

    open mycursor;  

    loop  

    fetch mycursor  into temp_emp;  

    exit when mycursor%notfound;  

   –构建恢复语句  

    vflash_back:='flashback table "'||temp_emp||'"  to  before drop';  

     –循环恢复被删除的表,直到全部恢复完成  

    execute immediate vflash_back;  

    end loop;  

    close mycursor;  

end;  

 

–调用存储过程  

–比如今天是2011-12-02,那么写法如下:  

/*  

declare 

time varchar2(20);  

begin 

time:='2011-12-02%';  

proc_databack (time);  

end;  

*/   

 

摘自 斐斐宝贝

此条目发表在oracle metalink账号分类目录,贴了标签。将固定链接加入收藏夹。