在替换为较新的代码后,可以从包体中恢复旧的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. (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |