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
