Не можете да връщате обратно това, което вече е било ангажирано. Това, което можете да направите в тази конкретна ситуация, като една от най-бързите опции, е да издадете заявка за ретроспекция към таблица, от която сте изтрили ред(ове), и да ги вмъкнете обратно. Ето един прост пример:
Забележка :Успехът на тази операция зависи от стойността (по подразбиране 900 секунди) на undo_retention
параметър - период от време (може да бъде намален автоматично), през който информацията за отмяна се запазва в пространството на таблицата за отмяна.
/* 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
Вмъкване на изтритите редове назад:
/* 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