[每日一题] 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