Sie können möglicherweise zurück, indem Sie eine Flashback-Abfrage auf all_source verwenden.
z.B. mein Paket Körper ist derzeit in der Version 2, um diese Abfrage als Standardbenutzer ausführen:
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.
Ich weiß, dass ich das heute abend um 09.30 Uhr geändert, so, nachdem er als SYSDBA Benutzer verbinden lief ich diese Anfrage:
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.
Weitere Informationen zum Thema Rückblende finden Sie unter here. Tom Kyte zeigt auch, wie man Flashback mit all_source here verwendet.
Was ist mit CVS/etc? –