在替换为较新的代码后,可以从包体中恢复旧的Oracle pl / sql源代码

前端之家收集整理的这篇文章主要介绍了在替换为较新的代码后,可以从包体中恢复旧的Oracle pl / sql源代码前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
我已经创建了一个具有标题和身体的Oracle PL / sql包,其中包含了大量的代码.之后,我重新使用不同的源代码(实际上我打算以不同的包名保存)的CREATE OR REPLACE PACKAGE BODY …语句之后,我不小心擦去了该机构的代码.有没有办法我可以从packege恢复我更旧的替换源代码
您可以通过在all_source上使用闪回查询获取它.

例如我的包体目前处于版本2,以标准用户身份执行此查询

sql> select text
  2  from all_source
  3  where name = 'CARPENTERI_TEST'
  4  and type = 'PACKAGE BODY';

TEXT


package body carpenteri_test
is

procedure do_stuff
is
begin
   dbms_output.put_line('version 2');
end do_stuff;

end carpenteri_test;

10 rows selected.

我知道我在晚上9:30改变了这一点,所以在连接一个SYSDBA用户后,我运行了这个查询

sql> select text
  2  from all_source
  3  as of timestamp
  4  to_timestamp('04-JUN-2010 21:30:00','DD-MON-YYYY HH24:MI:SS')
  5  where name = 'CARPENTERI_TEST'
  6  and type = 'PACKAGE BODY';

TEXT
----------------------------------------------------------------------------

package body carpenteri_test
is

procedure do_stuff
is
begin
   dbms_output.put_line('version 1');
end do_stuff;

end carpenteri_test;

10 rows selected.

有关闪回的更多信息可以在here中找到.Tom Kyte还演示了如何使用flashback with all_source here.

猜你在找的Oracle相关文章