闪回查询允许用户查看过去的数据视图,如果用户删除了某些数据或表,则闪回查询为我们提供了再次查看该数据并对其进行操作的机会。
在闪回查询中,我们有一个闪存区域的概念,在闪存区域中,我们存储了已删除的数据,以后可以在需要时查看这些数据。
要使用闪回查询功能,必须根据自动撤消管理配置服务器。如果我们的系统支持传统的回滚方法,则无法在此类系统上执行闪回查询。
我们可以使用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删除。要访问数据,我们可以使用闪回查询确切时间或提及系统更改号。
局限性闪回查询:
- 闪回查询仅在支持自动撤消管理的系统上起作用。
- 具有传统回滚方法的系统不支持闪回查询。
- 执行闪回查询时,我们不能使用DDL(数据定义语言)或DML(数据操作语言)。
- 闪回查询不会撤消DDL(数据定义语言)命令。
- 闪回查询可以在DDL(数据定义语言)命令中执行操作。
- 我们不能对函数,包,过程和触发器应用闪回查询。