查询闪回

使用pl/sql中的dbms_flashback包
-----------------------时间范围闪回----------------------------------
1.授权
    grant execute on sys.dbms_flashback to scott;
2.查询emp表记录
    EMPNO ENAME JOB     MGR HIREDATE       SAL      COMM DEPTNO
----- ---------- --------- ----- ----------- --------- --------- ------
 7934 MILLER sooo  7782 1982/1/23   1300.00               10

3.修改sooo为sony并commit
    UPDATE  emp SET job='sony' WHERE empno=7934;
    COMMIT;
4.启动闪回
    SQL>EXECUTE DBMS_FLASHBACK.ENABLE_AT_TIME(SYSDATE-10/1440); #24*60分钟=1440(一天),10代表10分钟之内。
    SQL>SELECT * FROM EMP;
    SQL>
            EMPNO ENAME JOB     MGR HIREDATE       SAL      COMM DEPTNO
            ----- ---------- --------- ----- ----------- --------- --------- ------
            7934 MILLER sony  7782 1982/1/23   1300.00               10
5.禁用闪回
    SQL>EXECUTE DBMS_FLASHBACK.DISABLE();

-----------------------------------SCN闪回-----------------------------------------------
1.定义变量保持当前scn号
    SQL> VARIABLE current_scn NUMBER
    SQL> EXECUTE :current_scn:=dbms_flashback.get_system_change_number();
 
    PL/SQL procedure successfully completed
    current_scn
    ---------
    81497749
2.修改emp表
    SQL> update emp set job='som' where empno=7934;
    SQL>COMMIT;
3.闪回查询
    SQL> EXECUTE DBMS_FLASHBACK.ENABLE_AT_SYSTEM_CHANGE_NUMBER(:current_scn);
4.查询结果,关闭闪回
    SQL> select * from emp;
    EMPNO ENAME JOB     MGR HIREDATE       SAL      COMM DEPTNO
    ----- ---------- --------- ----- ----------- --------- --------- ------
     7934 MILLER sooo  7782 1982/1/23   1300.00               10
SQL>DBMS_FLASHBACK.DISABLE();

来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/29665458/viewspace-1177030/,如需转载,请注明出处,否则将追究法律责任。

转载于:http://blog.itpub.net/29665458/viewspace-1177030/

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值