dbms_flashback

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

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章