欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  IT编程

oracle的PACKAGE恢复过程-闪回

程序员文章站 2022-08-13 20:53:18
oracle 的PACKAGE恢复过程 今天在修改package的时候,无意中用旧版本覆盖了新版本,导致了package编译错误,想到用flashback来恢复, 以前用fla...

oracle 的PACKAGE恢复过程

今天在修改package的时候,无意中用旧版本覆盖了新版本,导致了package编译错误,想到用flashback来恢复,

以前用flashback恢复表,还没用恢复过package,今天有机会了,可还没等我开始恢复,同事就已经修正了,非常

快。下面记录下大概的过程

需要sysdba,时间需是最近的时间

首先查询对象的obj#号是多少

SELECT obj#

FROM obj$ AS OF TIMESTAMP TO_TIMESTAMP('2011-09-08 15:25:00', 'YYYY-MM-DD HH24:MI:SS')

WHERE NAME = 'TEST_PACKAGE';

SQL> SELECT obj#

2 FROM obj$ AS OF TIMESTAMP TO_TIMESTAMP('2011-09-08 15:25:00', 'YYYY-MM-DD HH24:MI:SS')

3 WHERE NAME = 'DATA_SYNC';

OBJ#

----------

76389

76390

有两个值,一个是包头,一个是包体;然后再用如下的sql查询有正确值时间点的数据

SELECT source

FROM source$ AS OF TIMESTAMP TO_TIMESTAMP('2011-09-08 15:25:00', 'YYYY-MM-DD HH24:MI:SS')

where obj# = 76390;

SELECT source

FROM source$ AS OF TIMESTAMP TO_TIMESTAMP('2011-09-08 15:25:00', 'YYYY-MM-DD HH24:MI:SS')

where obj# = 76389;

通过如上两个sql结果内容就可以恢复了