В случае, если у вас случайно удалились данные в таблице

Можно воспользоваться таким методом продемонстрированном в примере (для Oracle 9i и выше):

CREATE TABLE q (a NUMBER);

INSERT INTO q VALUES(10);

INSERT INTO q VALUES(15);

SELECT * FROM q ;

---------------

10

15

COMMIT;

-- выдерживаем паузу в несколько минут

DELETE FROM q;

SELECT * FROM q AS OF TIMESTAMP (SYSTIMESTAMP - INTERVAL '2' MINUTE) where rownum=1;

----------------

10

Интервал можно задать до 4-х дней (около 6000 минут). Для большего интервала выскочит ошибка. Но реально можно вытянуть только те данные, которые сохранились в сегментах отката. Соответственно, если данные были удалены через truncate table, то их вытянуть будет невозможно, так как они не записываются в roolback при этой операции. То же самое будет и в ситуации, если на сервере интенсивно идут операции update / insert / delete и удалённые данные вытеснятся новыми операциями.

 

Хостинг от uCoz