oracle之Flashback query

flashback query是自oracle 9i开始的一种新特性,通过flashback query可以查看回滚段中一定时间内的数据,可以用来数据的对比,同时也可以修复由于意外提交的错误数据。
flashback query的查询是在标准查询语句的表名后面加上as of scn(基于scn)或as of timestamp(基金时间)。
flashback query实例
⑴scn
SQL> select * from dept;

   DEPT_ID DEPT_NAME
---------- ----------------------------------------------------------------
         1 产品一部
         2 产品二部
         3 产品三部
         4 产品四部

SQL> select current_scn from v$database;

CURRENT_SCN
-----------
    9104996

SQL> delete from dept where dept_id = 1;

1 row deleted.

SQL> commit;

Commit complete.

SQL> select * from dept as of scn 9104996;

   DEPT_ID DEPT_NAME
---------- ----------------------------------------------------------------
         1 产品一部
         2 产品二部
         3 产品三部
         4 产品四部
⑵timestamp  
SQL> select * from dept;

   DEPT_ID DEPT_NAME
---------- --------------------
         1 产品一部
         2 产品二部
         3 产品三部
         4 产品四部

SQL> delete from dept where dept_id = 1;

1 row deleted.

SQL> commit;

Commit complete.

SQL> select * from dept;

   DEPT_ID DEPT_NAME
---------- --------------------
         2 产品二部
         3 产品三部
         4 产品四部

SQL> select * from dept as of timestamp sysdate - 2/1440;

   DEPT_ID DEPT_NAME
---------- --------------------
         1 产品一部
         2 产品二部
         3 产品三部
         4 产品四部

SQL> flashback table dept to timestamp sysdate - 2/1440;

Flashback complete.

SQL> select * from dept;

   DEPT_ID DEPT_NAME
---------- --------------------
         1 产品一部
         2 产品二部
         3 产品三部
         4 产品四部  
flashback query只能查询一定时间内的数据,具体的时间可以查看参数undo_retention,单位为秒,如下所示:
SQL> show parameter undo

NAME                                 TYPE        VALUE
------------------------------------ ----------- ------------------------------
undo_management                      string      AUTO
undo_retention                       integer     900
undo_tablespace                      string      UNDOTBS1
注意事项
⑴flashback query查询只针对dml操作才有效,对ddl无效

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值