[每日一题] 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
本站文章为和通数据库网友分享或者投稿,欢迎任何形式的转载,但请务必注明出处.
同时文章内容如有侵犯了您的权益,请联系QQ:970679559,我们会在尽快处理。