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 9i.
Ссылки
Ошибка: неверное или отсутствующее изображение |
Для улучшения этой статьи желательно?:
|
Если вам нравится SbUP.com Сайт, вы можете поддержать его - BTC: bc1qppjcl3c2cyjazy6lepmrv3fh6ke9mxs7zpfky0 , TRC20 и ещё....