【Oracle】存储过程 Drop后闪回恢复

文中使用的Oracle版本为10g。
flashback教程又来了,这次flashback的是误操作删除的存储过程。

本操作需要在获得DBA账号权限的前提下进行操作,只要执行如下脚本:

select text
from dba_source as of timestamp to_timestamp('<time>', 'YYYY-MM-DD HH24:MI:SS')
where owner = '<tablespace>' and name = '<procedures_name>'
order by line;

这条语句共需传入3个参数,一个是时间,这个时间一般来说是被删除的确切时间。第二个是表空间,有了表空间才知道存储过程的拥有者是谁,最后是存储过程的名称,这个好理解如果连删除掉的存储过程名称都不知道那还查个鬼。
最后需要根据行序号(line)进行自然排序,为什么还需要排序呢?

因为查询出来的内容虽然说是存储过程,但是是一个数据集来的。可以简单理解成原本存储过程的每一行在这里会形成一行记录,同时会被记录行数。将所有内容都导出到命令窗口中进行再执行即可恢复存储过程。

这样就很有意思了,从这里可以推测出Oracle数据库在存储未知容量的数据时也是通过切割存储的方式来存储的,这种方式会形成一张虚拟的纵表,纵表内容可以超出一般字段类型的容量大小。这为后面我们做大数据量存储提供了思路。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Kida 的技术小屋

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值