gpt4 book ai didi

oracle - 在用新代码替换后,我可以从包体中恢复旧的 Oracle pl/sql 源代码吗

转载 作者:行者123 更新时间:2023-12-02 13:40:49 25 4
gpt4 key购买 nike

我创建了一个 Oracle PL/SQL 包,其中包含 header 和包含大量代码的主体。

后来,在使用不同的源代码重新运行 CREATE OR REPLACE PACKAGE BODY... 语句后,我最终意外地删除了该主体中的代码(实际上我打算将其保存在不同的包名称下) )。

有什么方法可以从包中恢复旧的替换源代码吗?

最佳答案

您也许可以通过对 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 还演示了如何使用 all_source here 闪回.

关于oracle - 在用新代码替换后,我可以从包体中恢复旧的 Oracle pl/sql 源代码吗,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2976682/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com