Иногда по той или иной причине возможны непреднамеренные изменения данных в таблице.
Чтобы проанализировать такую ситуацию, используют многократные запросы flashback с целью просмотра информации строк в конкретные моменты времени. Большую эффективность обеспечивает функция Flashback Version Query, позволяющая отслеживать все изменения данных строки за период времени. Эта функция предоставляет возможность добавления предложения VERSIONS
в инструкцию SELECT
, задающую номер изменения системы (SCN, system change number) или диапазон временных меток, в пределах которого требуется просмотреть изменения значений строк. Запрос может также возвращать связанные метаданные, например транзакцию, из-за которой произошло изменение.
Далее после идентификации транзакции с ошибками можно воспользоваться функцией Flashback Transaction Query для определения других изменений, которые были выполнены этой транзакцией. Затем имеется возможность использования функции Flashback Table для восстановления таблицы в состояние, предшествовавшее появлению изменений.
Можно использовать запрос таблицы с предложением VERSIONS
для создания всех версий всех строк, которые существуют или когда-либо существовали между моментом выполнения запроса и за undo_retention
сек до текущего момента времени. undo_retention
– параметр инициализации, который настраивается автоматически. Запрос, содержащий предложение VERSIONS
, называется запросом версий. Результаты запроса версий ведут себя так, как если бы к версиям строк применялось предложение WHERE
. Запрос версий возвращает версии строк только по транзакциям.
Номер изменения системы (SCN). Сервером Oracle назначается номер изменения системы (SCN, System change number) с целью идентификации записей повторного выполнения для каждой зафиксированной транзакции.
Далее: Резюме по извлечению данных с помощью подзапросов