oracle 闪回功能之--恢复存储过程篇

http://blog.csdn.net/zlj113/article/details/5075983

超级好用的oracle 闪回功能之--恢复存储过程篇

 

┏━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┓
┠※┃名称:oracle 闪回功能之--恢复存储过程篇

┠※┃说明:将存储过程恢复到某一指定时间段。

┠※┃作者:zlj113

┠※┃时间:20091225

┗━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┛


  

 

 经常有在工作中误操作导至程存过程被替换或被删除的现象产生。给工作带来一定的麻烦,可能需要重新写一次代码,若过程比较短重写一次还能接受,若是那种比较长的存储过程重要则是需要付出相当大的代价的。好在oracle10G就开始提供了 一种强大的闪回flashback 功能,可以针对误删除的数据,表,存储过程等进行恢复。

废话就先不说了,看看详细的恢复过程吧^^....

首先需要用SYS登陆到PLSQL Devplore 中,选择 sysdba 的权限 ,若用其它的用户登陆则在下面的操作中会提示出权限不足的警告

第三种方法:

SQL> set pagesize 0
SQL> column text format a4000
SQL> spool C:/7.text
Started spooling to C:/7.text
SQL> SELECT text
       FROM DBA_source AS OF TIMESTAMP TO_TIMESTAMP('2009-12-25 10:07:00', 'YYYY-MM-DD HH24:MI:SS')
      WHERE OWNER = '用户名'
        AND NAME = ‘存储过程名’
       ORDER BY LINE
     ;
SQL> spool off;

这种方法就不用事先查询出存储过程的ID只需要知道名字和用户即可.

第一种方法:

在Command窗体里依次输入:
set pagesize 0
column text format a4000
 --格式化text 列的数据 a4000表示 文字 按4000长度显示
spool c:/1.text -- 这句是指一会将结果输出到文件,如果存储过程比较小则可以采用第2种方法)
select text From source$ as of timestamp to_timestamp('2009-12-25 12:21:38', 'yyyy-mm-dd hh24:mi:ss') where obj#=55110; --这里的时间点就是你想要恢复什么时候的存储过程. 而obj#=55110 这个55110是你存储过程相对应的ID号, 可以在事先用select object_id from dba_objects where object_name ='存储过程名注意大小写是敏感的'; 查出所对应的ID号。
spool off;

然后你就可以到c:盘下找到1.txt文件里面就会有你2009-12-25 12:21:38时存储过程的内容啦!

怎么样,是不是超好用呀!

第二种方法:

 select *From source$ as of timestamp to_timestamp('2009-12-25 12:21:38', 'yyyy-mm-dd hh24:mi:ss') where obj#=55110;

这种方法呢,就只是把存储过程的内容显示在表格里了,需要自己复制粘贴出来。适合比较短小的存储过程。


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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值