闪回查询:查询在特定时间点存在的所有数据。
使用闪回查询功能,可以执行截止到特定时间的查询。使用SELECT语句的AS OF子句,可以指定要查看其对应数据的时间戳。这在分析数据差异时非常有用。
注:TIMESTAMP和SCN是AS OF子句的有效选项。
UPDATE employees
SET salary =
(SELECT salary FROM employees
AS OF TIMESTAMP TO_TIMESTAMP
('2005-05-04 11:00:00', 'yyyy-mm-dd hh24:mi:ss')
WHERE employee_id = 200)
WHERE employee_id = 200
闪回查询:示例
1、如果最近错误地给某个雇员加了薪,则可重新更改薪金,其值由子查询返回的闪回值提供。
2、在进行了insert、update时,想知道操作前后的数据差异
注意事项:
因为闪回查询是基于undo数据的,所以要保证闪回查询的那个时间点有undo数据就能够查询成功。
The UNDO_MANAGEMENT parameter must be set to AUTO。
The UNDO_RETENTION parameter must be set appropriately。