该包用于激活或禁止会话的flashback特性;
普通用户必须授权:
grant excetute dbms_flashback to scott;
–1,enable_at_time
/*
该过程以时间的方式激活会话的flashback;
*/
dbms_flashback.enable_at_time(query_time => );
—-2,enable_at_system_change_number
/*
该过程以系统该编号(scn)的方式激活会话的flashback;
*/
dbms_flashback.enable_at_system_change_number(query_scn => );
—-3, get_system_change_number
/*
该函数用于取得当前的系统改变号(scn);
*/
dbms_flashback.get_system_change_number;
—-4, disable
/*
该过程用于禁止flashback;
*/
dbms_flashback.disable;
/*
flashback 案例
*/
–1 ,取得李四雇员的工资和当前的scn值
select sal from system.emp where empname =’李四’;
select dbms_flashback.get_system_change_number() as scn from dual;
–2,更新工资,并让其休眠五分钟
update system.emp set sal = 3000 where empname =’李四’;
commit;
begin
dbms_lock.sleep(5000);
end;
–3 使用特定的scn时间点所对应的数据;
begin
dbms_flashback.enable_at_system_change_number();
select sal from system.emp where empname =’李四’;
end;
–关闭
dbms_flashback.disable;
select sal from system.emp where empname =’李四’;