В примере на рисунке извлекается оклад сотрудника 107 (1). Оклад сотрудника 107 повышается на 30 процентов и это изменение фиксируется (2). Разные версии оклада выводятся на экран (3).
Предложение VERSIONS
не изменяет план запроса. Например, если выполняется запрос таблицы, в которой используется метод индексного доступа, тогда тот же запрос той же таблицы с предложением VERSIONS
продолжает использовать метод индексного доступа.
Версии строк, возвращаемые запросом версий, являются версиями строк по транзакциям.
Предложение VERSIONS
не оказывает влияния на поведение запроса как транзакции. Это означает, что запрос в таблице с предложением VERSIONS
по-прежнему наследует среду запроса текущей транзакции.
Предложение VERSIONS
, используемое по умолчанию, может задаваться как VERSIONS BETWEEN {SCN|TIMESTAMP} MINVALUE AND MAXVALUE
.
Предложение VERSIONS
является расширением SQL для запросов. Могут присутствовать операции DML и DDL, использующие предложение VERSIONS
в подзапросах. Запрос версий строк извлекает все зафиксированные версии выбранных строк. Изменения, внесенные текущей активной транзакцией, не возвращаются. Запросом версий возвращаются все воплощения строк. Это по существу означает, что возвращаемые версии включают удаленные и затем повторно вставленные версии строк.
Доступ к строкам для запроса версий может определяться в одной из следующих двух категорий:
- Доступ к строкам на основе идентификатора
ROWID
. В случае доступа на основе идентификатораROWID
все версии заданного идентификатораROWID
возвращаются независимо от содержимого строк. Это по существу означает, что возвращаются все версии сегмента в блоке, указанном идентификаторомROWID
. - Все другие виды доступа к строкам. Для всех других видов доступа к строкам возвращаются все версии строк.
Далее: Создание отчетов базы данных