前言
如果生产上误删除存储过程,在没有备份的情况下,请使用以下方法恢复。
1.找回ID
SELECT obj# FROM obj$ AS OF TIMESTAMP TO_TIMESTAMP('2020-07-24 14:30:00', 'YYYY-MM-DD HH24:MI:SS') WHERE NAME = 'PKG_JEAMES'; 注:1.请登录服务器,以sys用户执行 2.PKG_JEAMES为存储过程,或者包
2.通过ID反查
SELECT source FROM source$ AS OF TIMESTAMP TO_TIMESTAMP('2020-07-24 14:30:00', 'YYYY-MM-DD HH24:MI:SS') where obj# = 138324;
3.输出脚本命令
vi flashbak.sql set echo off; set feedback off; set verify off; set term off; set trimspool on; set linesize 3000; set newpage none; set heading off; spool /oracle/scr/wpp.sql; --输出到指定的文件中 @/home/oracle/scr/test.sql; --执行SQL脚本(此脚本包括sql语句查询)
4.执行脚本恢复
SQL> @/home/oracle/scr/flashbak.sql
通过以上命令即可立刻恢复误删除的存储过程。