您的位置:首页 > 数据库

如何找回被create or replace覆盖的PL/SQL对象

2012-05-21 22:15 555 查看
有同学在T.Askmaclean.com上提问关于10gR2下原存储过程procedure,因为开发人员误操作create or replace 使用同样的过程名导致原存储过程被覆盖,希望通过Oracle技术手段在不停机的前提下找回原存储过程procedure。

这里Maclean 提供2种10gR2以后可以在线挽救被覆盖PL/SQL对象的方案:

方案1: 利用Flashback Query 闪回特性,该方案并不要求数据库已启用flashback database,唯一和最关键的要求是create or replace时递归SQL删除source$数据字典基础表相关的undo data,不要因为时间过久而被重用:

SQL> select * from V$version;

BANNER
----------------------------------------------------------------
Oracle Database 10g Enterprise Edition Release 10.2.0.5.0 - 64bi
PL/SQL Release 10.2.0.5.0 - Production
CORE 10.2.0.5.0 Production
TNS for Linux: Version 10.2.0.5.0 - Production
NLSRTL Version 10.2.0.5.0 - Production

SQL> select * from global_name;

GLOBAL_NAME
--------------------------------------------------------------------------------
www.oracledatabase12g.com

SQL> create or replace procedure maclean_proc as
本文出自 “Ask Maclean Liu Oracle” 博客,请务必保留此出处http://maclean.blog.51cto.com/2923249/1278328
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: