Vous pourriez être en mesure de le récupérer en utilisant une requête de retour de flamme sur all_source.
par exemple. mon corps de package est actuellement à la version 2, l'exécution de cette requête en tant qu'utilisateur standard:
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.
Je sais que je changé ce soir vers 9h30 ce donc après la connexion en tant qu'utilisateur SYSDBA j'ai couru cette requête:
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.
Vous trouverez plus d'informations sur le retour de flamme here. Tom Kyte démontre également comment utiliser flashback avec all_source here.
Qu'en est-il de CVS/etc? –