Vous ne pouvez pas annuler ce qui a déjà été validé. Ce que vous pouvez faire, dans cette situation particulière, comme l'une des options les plus rapides, est d'émettre une requête flashback sur une table dont vous avez supprimé des lignes et de les réinsérer. Voici un exemple simple :
Remarque :Le succès de cette opération dépend de la valeur (par défaut 900 secondes) de undo_retention
paramètre - période de temps (peut être réduite automatiquement) pendant laquelle les informations d'annulation sont conservées dans l'espace table d'annulation.
/* our test table */
create table test_tb(
col number
);
/* populate test table with some sample data */
insert into test_tb(col)
select level
from dual
connect by level <= 2;
select * from test_tb;
COL
----------
1
2
/* delete everything from the test table */
delete from test_tb;
select * from test_tb;
no rows selected
Réinsérer les lignes supprimées :
/* flashback query to see contents of the test table
as of specific point in time in the past */
select * /* specify past time */
from test_tb as of timestamp timestamp '2013-11-08 10:54:00'
COL
----------
1
2
/* insert deleted rows */
insert into test_tb
select * /* specify past time */
from test_tb as of timestamp timestamp '2013-11-08 10:54:00'
minus
select *
from test_tb
select *
from test_tb;
COL
----------
1
2