該包用於激活或禁止會話的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 =’李四’;