Користувальницькі налаштування

Налаштування сайту


administration:retrieving_a_lost_row

Как вернуть прошлое состояние записи в Oracle?

При работе с Siebel CRM (из-за кривых рук) возникает необходимость вернуть прошлое состояние записи. В моем случаи такая необходимость возникает при написании скриптов.

Первоисточник Example 13-1 Retrieving a Lost Row with Oracle Flashback Query

SELECT * FROM employees
  AS OF TIMESTAMP
   TO_TIMESTAMP('2004-04-04 09:30:00', 'YYYY-MM-DD HH24:MI:SS')
     WHERE last_name = 'Chung';

Рассмотрим ситуацию когда мы хотим получить значение записи BusComp Server Script. Получает ROW_ID необходимой Server Script и выполняем следующий код:

SELECT * FROM S_BUSCOMP_SCRIPT
  AS OF TIMESTAMP
     TO_TIMESTAMP('2014-11-14 10:00:00', 'YYYY-MM-DD HH24:MI:SS')
     WHERE ROW_ID = '1-2DYR1';

Или получить все записи из таблицы на определенный момент времени.

SELECT * FROM S_BUSCOMP_SCRIPT AS OF TIMESTAMP (sysdate-1);

Ограничение - Размер UNDO тейблспейса (время гарантированного хранения информации) и/или ограничения технологии flashback.

S_BUSCOMP_SCRIPT - таблица содержащая Серверные скрипты Business Componet

wiki_admin 2014/11/14 10:55

Oracle eScript

administration/retrieving_a_lost_row.txt · Востаннє змінено: 2022/05/23 15:26 повз 127.0.0.1