加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

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

发布时间:2020-12-12 15:13:45 所属栏目:百科 来源:网络整理
导读:我已经创建了一个具有标题和身体的Oracle PL / SQL包,其中包含了大量的代码.之后,我重新使用不同的源代码(实际上我打算以不同的包名保存)的CREATE OR REPLACE PACKAGE BODY …语句之后,我不小心擦去了该机构的代码.有没有办法我可以从packege恢复我更旧的替
我已经创建了一个具有标题和身体的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.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读