Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > Oracle > проблема с удаленными записями


Автор: notknowlege 6.9.2011, 12:24
Добрый все дня!

подскажите есть табличка
сделал 

delete from  table1 where id=123


теперь как вернуть обратно удаленную запись... ????

нигде не могу нати..

Автор: LSD 6.9.2011, 12:25
Если не делал commit, то rollback поможет. Иначе доставать из бекапа или копаться в redo log.

Автор: Zloxa 6.9.2011, 13:35
Цитата(LSD @  6.9.2011,  12:25 Найти цитируемый пост)
 Иначе доставать из бекапа или копаться в redo log. 

Порой, очень сильно выручает http://download.oracle.com/docs/cd/E11882_01/appdev.112/e17125/adfns_flashback.htm#ADFNS01003
Код

SQL> -- создаем тестовый набор данных
SQL> create table test(val) as (select 120+level from dual connect by level <= 10);

Table created.

SQL> --выжидаем какоето время, чтобы потом ненароком не попасть в период, кода таблицы еще не было
SQL> pause

SQL> --удаляем запись
SQL> delete from test where val = 123;

1 row deleted.

SQL> commit;

Commit complete.

SQL> -- записи-нет
SQL> select * from test where val = 123;

no rows selected

SQL> -- а ручки то - вот они :D
SQL> select * from test as of timestamp(systimestamp - interval '1' second) where val = 123;

       VAL
----------
       123

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)