Галерея
7757 8119 8300 8698 8817 9504 9722 9937
Интересные записи
Топовые новости
Новое

Ретроспективные запросы

Также в Oracle 1 Og поддерживаются ретроспективные запросы (flashback queries) — запросы, которые отслеживают предыдущие значения результатов, запрошенных в инструкции SELECT. В следующем фрагменте кода мы выполним обычный запрос к таблице, потом изменим данные в таблице при помощи предложения UPDATE, а затем выполним запрос предыдущей версии данных. Сначала выполняем обычный запрос.

SELECT
salary
FROM employees
WHERE last_name=’McCreary’;

Результат будет следующий.

SALARY

3800

Теперь изменим значение в таблице employees и выполним запрос, чтобы получить текущее значение.

UPDATE employees SET
salary=4000
WHERE Iast_namo=’McCreary’;

SELECT
salary
FROM employees
WHERE last_name=’McCreary’;

Результат будет следующий.

SALARY

4000

И наконец, выполним ретроспективный запрос, чтобы увидеть, какой была зарплата в прошлом.

Результат будет следующий.

SALARY

3800

Если бы нам были нужны более подробные сведения, мы могли бы найти все значения salary за определенный период времени, скажем за последние два дня.

SELECT salary
FROM employees VERSIONS
BETWEEN TIMESTAMP
SYSTIMESTAMP — INTERVAL ‘1’ MINUTE AND
SYSTIMESTAMP — INTERVAL ‘2’ DAY WHERE last_name=’McCreary’;

Результат будет следующий.

SALARY

4000 3800

Источник