当前位置:编程问答 > Flash >

[每日一题] OCP1z0-047 :2013-08-13 Flashback Version Query

[每日一题] OCP1z0-047 :2013-08-13 Flashback Version Query
 
 
正确答案:C
 
使用Flashback Version Query查询记录修改版本,查询表在不同时间点的不同版本的数据,闪回版本查询只能对提交后的数据进行查询,根据题意如下操作:
 
[html] 
gyj@MYDB> create table digits(id number(2), description varchar2(15));  
  
Table created.  
  
gyj@MYDB> insert into digits values (1,'ONE');  
  
1 row created.  
  
gyj@MYDB> update digits set description ='TWO' where id=1;  
  
1 row updated.  
  
gyj@MYDB> insert into digits values (2,'TWO');  
  
1 row created.  
  
gyj@MYDB> commit;  
  
Commit complete.  
  
gyj@MYDB> delete from digits;  
  
2 rows deleted.  
  
  
gyj@MYDB> select description from digits versions between timestamp minvalue and maxvalue;  
  
DESCRIPTION  
---------------  
TWO  
TWO  

versions between timestamp  minvalue and maxvalue显示所有可能的版本数据。


对于Flashback Version Query(闪回版本查询)允许查询提交版本的记录,继续实验分析结果:

[html] 
gyj@MYDB> select current_scn from v$database;  
  
CURRENT_SCN  
-----------  
    4205516  
  
gyj@MYDB>  insert into digits values (1,'ONE');  
  
1 row created.  
  
gyj@MYDB> update digits set description ='TWO' where id=1;  
  
  
1 row updated.  
  
gyj@MYDB> gyj@MYDB> insert into digits values (2,'TWO');  
  
1 row created.  
  
gyj@MYDB>  commit;  
  
Commit complete.  
  
gyj@MYDB> delete from digits;  
  
2 rows deleted.  
  
gyj@MYDB> select current_scn from v$database;  
  
CURRENT_SCN  
-----------  
    4205565  
  
gyj@MYDB> SELECT description,VERSIONS_STARTSCN STARTSCN,VERSIONS_ENDSCN ENDSCN,  
  2         VERSIONS_OPERATION OPERATION,VERSIONS_XID XID  
  3          FROM digits VERSIONS BETWEEN SCN  4205516 AND 4205565;  
  
DESCRIPTION       STARTSCN     ENDSCN O XID  
--------------- ---------- ---------- - ----------------  
TWO                4205546            I 070009005A130000  
TWO                4205546            I 070009005A130000  

 

 
这里为什么是两条记录,应该懂了吧。。。
 
   --VERSIONS_STARTSCN:该条记录操作时的SCN,如果为空,表示该行记录是在查询范围外创建的
    --VERSIONS_ENDSCN:该条记录失效时的SCN,如果为空,说明记录在这段时间无操作,或者已经被删数,配合VERSIONS_OPERATION
    --VERSIONS_OPERATION:I表示insert、D表示delete、U表示update
    --VERSIONS_XID:该操作的事务ID

 

 
CopyRight © 2012 站长网 编程知识问答 www.zzzyk.com All Rights Reserved
部份技术文章来自网络,