十三、dbms_flashback(用于激活或禁止会话的flashback特征)

1、概述


作用:用于激活或禁止会话的flashback特征,为了使得普通用户可以使用该包,必须要将执行该包的权限授予这些用户,grant execute on dbms_flashback to scott;


2、包的组成


1)、enable_at_time
作用:用于以时间方式激活会话的flashback
语法:dbms_flashback.enable_at_time(query_time in timestamp);
其中query_time指定flashback对应的时间点;

2)、enable_at_system_change_number
作用:用于以系统改变号(scn)方式激活会话的flashback
语法:dbms_flashback.enable_at_system_change_number(query_scn in number);
其中query_scn指定flashback对应的scn值。

3)、get_system_change_number
作用:用于取得系统的当前scn值
语法:dbms_flashback.get_system_change_number return number;

4)、disable
作用:用于禁止会话的flashback模式
语法:dbms_flashback.disable;

3、综合例子
1)、取得SCOTT雇员工资及系统SCN值
select sal from emp where ename='scott';--3600
seelct dbms_flashback.get_system_change_number from dual;--717402

2)、更新scott工资,并休眠5分钟
update emp set sal=3000 where ename='scott';
commit;
exec dbms_lock.sleep(300);

3)、使用dbms_flashback取得特定scn时间点对应的数据
exec dbms_flashback.enable_at_system_change_number(717402);
select sal from emp where ename='scott';--3600
exec dbms_flashback.disable;
select sal from emp where ename='scott';--3000

原文地址:https://www.cnblogs.com/champaign/p/9468618.html