设为首页 加入收藏

TOP

使用dbms_flashback工具包实现闪回查询功能(二)
2015-11-10 12:17:40 来源: 作者: 【 】 浏览:16
Tags:使用 dbms_flashback 工具 实现 查询功能
ble_at_system_change_number(query_scn => 2107631); --开启了查询;


PL/SQL procedure successfully completed


SQL> select * from test where empno=7521;


EMPNO? ? ? SAL


----- ---------


?7521? 1250.00


SQL> exec dbms_flashback.disable;


PL/SQL procedure successfully completed


--disable之后,数据恢复


SQL> select * from test where empno=7521;


EMPNO? ? ? SAL


----- ---------


?7521? 1000.00


注意:使用enable方法之后,我们以直接的方式查询到过去的时间点方法。如果操作结束,需要使用disable方法关闭设置的上下文时间。


如果指定timestamp方法,效果是相同的。


SQL> exec dbms_flashback.enable_at_time(query_time => to_timestamp('2015-06-29 13:49:13','yyyy-mm-dd hh24:mi:ss'));


PL/SQL procedure successfully completed


SQL> select * from test where empno=7521;


EMPNO? ? ? SAL


----- ---------


?7521? 1250.00


SQL> exec dbms_flashback.disable;


PL/SQL procedure successfully completed


最后,我们考虑一下,如果在过去的时间上下文中进行修改,修改相关数据和无关数据,结果是如何呢?


SQL> exec dbms_flashback.enable_at_system_change_number(query_scn => 2107631);


PL/SQL procedure successfully completed


SQL> select * from test where empno=7521;


EMPNO? ? ? SAL


----- ---------


?7521? 1250.00


SQL> select * from test;


EMPNO? ? ? SAL


----- ---------


?7369? ? 800.00


?7499? 1600.00


?7521? 1250.00


SQL> delete test where empno=7499;


delete test where empno=7499


ORA-08182: 在闪回模式下操作不受支持


SQL> update test set sal=1000 where empno=7369;


update test set sal=1000 where empno=7369


ORA-08182: 在闪回模式下操作不受支持


SQL> insert into test values (1000,1000);


insert into test values (1000,1000)


ORA-08182: 在闪回模式下操作不受支持


SQL> create table m as select * from test;


create table m as select * from test


ORA-08182: 在闪回模式下操作不受支持


和时间机器一样,不能改变历史。


3、结论


Dbms_flashback工具包提供了关于闪回技术的很多功能和有意义的场景。借助dbms_flashback的flashback query上下文,我们可以方便的实现上下文历史数据查询检索。


首页 上一页 1 2 下一页 尾页 2/2/2
】【打印繁体】【投稿】【收藏】 【推荐】【举报】【评论】 【关闭】 【返回顶部
分享到: 
上一篇使用Flashback Transaction方法来.. 下一篇使用Linux Strace跟踪调试Oracle..

评论

帐  号: 密码: (新用户注册)
验 证 码:
表  情:
内  容: