- Flashback Query
-
Flashback Query — ретроспективные запросы, функциональная возможность Oracle RDBMS, позволяющая запрашивать данные так, как если бы это было сделано в заданный момент времени в прошлом.
Существует 2 способа использования ретроспективных запросов:
- ключ AS OF в SELECT-запросе;
- пакет DBMS_FLASHBACK.
Пример «AS OF»:
SELECT * FROM USERS AS OF TIMESTAMP TO_TIMESTAMP('01-JAN-07 10:00:00','DD-MON-YY HH24: MI: SS');
Пример DBMS_FLASHBACK:
DECLARE CURSOR c IS SELECT * FROM users; user c%ROWTYPE; BEGIN DBMS_FLASHBACK.ENABLE_AT_TIME('01-JAN-07 10:00:00'); OPEN c; DBMS_FLASHBACK.DISABLE; LOOP FETCH c INTO user; EXIT WHEN c%NOTFOUND; END LOOP; CLOSE c; END;
Для реализации возможности ретроспективных запросов Oracle RDBMS использует сегмент отката (то есть структуру данных, позволяющую сохранять данные о выполняемых изменениях для последующей отмены транзакций). Параметр UNDO_RETENTION конфигурационного файла init.ora определяет как долго данные о сделанных изменениях будут храниться в сегменте отката.
Возможность использования ретроспективных запросов Flashback Query стала доступна начиная с Oracle 10.1.
Ссылки
Для улучшения этой статьи желательно?: - Викифицировать статью.
- Найти и оформить в виде сносок ссылки на авторитетные источники, подтверждающие написанное.
- Добавить иллюстрации.
Категория:- Oracle
Wikimedia Foundation. 2010.