📜  闪回查询

📅  最后修改于: 2021-09-08 16:17:24             🧑  作者: Mango

闪回查询允许用户查看过去数据的视图,如果用户删除了某些数据或表,则闪回查询为我们提供了再次查看该数据并对其进行操作的机会。

在闪回查询中,我们有一个闪回区的概念,在闪回区中我们存储了被删除的数据,以后需要可以查看。

要使用闪回查询的功能,我们的服务器必须按照自动undo管理进行配置。如果我们的系统支持传统的回滚方式,那么我们就不能在这样的系统上进行闪回查询。

我们可以使用 DBMS_FLASHBACK 包启用闪回查询。该包使我们能够通过指定系统更改编号或过去的确切时间来查看过去的数据。

如何使用 DBMS_FLASHBACK :

EXECUTE Dbms_Flashback.Enable_At_System_Change_Number(647392649);
EXECUTE Dbms_Flashback.Enable_At_Time('19-APR-2020 11:00:00); 

闪回查询示例:
如果我们想查看被错误删除的过去数据。数据由学生表组成,它在 2020 年 4 月 19 日上午 11:05 被删除。要访问数据,我们可以通过以下方式使用闪回查询确切时间或通过提及系统更改编号。

限制闪回查询:

  1. 闪回查询仅适用于支持自动撤消管理的系统。
  2. 采用传统回滚方法的系统不支持闪回查询。
  3. 在执行闪回查询时,我们不能使用 DDL(数据定义语言)或 DML(数据操作语言)。
  4. 闪回查询不会反转 DDL(数据定义语言)命令。
  5. 闪回查询可以在 DDL(数据定义语言)命令中执行操作。
  6. 我们不能对函数、包、过程和触发器应用闪回查询。