ITPub博客

首页 > 数据库 > Oracle > OCP-IZO-053_QUESTION382

OCP-IZO-053_QUESTION382

原创 Oracle 作者:DB_SUN 时间:2014-02-09 18:02:15 0 删除 编辑

QUESTION NO: 382 

Which of the following can be used in conjunction with a Flashback Versions Query to filter the results? (Choose all that apply.)

A. A range of SCN values

B. A list of SCN values

C. A starting and ending timestamp

D. Minimum and maximum sequence values

E. A list of sequence values

 

【题目示意】

此题考查有关于Flashback Versions Query 的相关知识。

【解析】

Flashback Versions QueryOracle来检索在一个给定的时间间隔特定行存在的不同版本。每执行一次COMMIT语句创建一行版本。

Oracle Flashback Version Query Row Data Pseudocolumns

Pseudocolumn Name

Description

VERSIONS_STARTSCN

VERSIONS_STARTTIME

Starting System Change Number (SCN) or TIMESTAMP when the row version was created. This pseudocolumn identifies the time when the data first had the values reflected in the row version. Use this pseudocolumn to identify the past target time for Oracle Flashback Table or Oracle Flashback Query.

If this pseudocolumn is NULL, then the row version was created before start.

VERSIONS_ENDSCN

VERSIONS_ENDTIME

SCN or TIMESTAMP when the row version expired.

If this pseudocolumn is NULL, then either the row version was current at the time of the query or the row corresponds to a DELETE operation.

VERSIONS_XID

Identifier of the transaction that created the row version.

VERSIONS_OPERATION

Operation performed by the transaction: I for insertion, D for deletion, or U for update. The version is that of the row that was inserted, deleted, or updated; that is, the row after an INSERT operation, the row before a DELETEoperation, or the row affected by an UPDATE operation.

For user updates of an index key, Oracle Flashback Version Query might treat an UPDATE operation as two operations, DELETE plus INSERT, represented as two version rows with a D followed by an I VERSIONS_OPERATION.

 

【实验】

1)执行DML操作

SYS@ENMOEDU >create table test (a int);

 

Table created.

 

SYS@ENMOEDU >insert into test values(1);

 

1 row created.

 

SYS@ENMOEDU >insert into test values(2);

 

1 row created.

 

SYS@ENMOEDU >insert into test values(3);

 

1 row created.

 

SYS@ENMOEDU >commit;

 

Commit complete.

 

SYS@ENMOEDU >select * from test;

 

         A

----------

         1

         2

         3

 

SYS@ENMOEDU >commit;

 

Commit complete.

SYS@ENMOEDU >delete from test where a=1;

 

1 row deleted.

 

SYS@ENMOEDU >commit;

 

Commit complete.

 

SYS@ENMOEDU >delete from test where a=2;

 

1 row deleted.

 

SYS@ENMOEDU >commit;

 

Commit complete.

 

SYS@ENMOEDU >select * from test;

 

         A

----------

         3

 

SYS@ENMOEDU >update test set a=4;

 

1 row updated.

 

SYS@ENMOEDU >commit;

 

Commit complete.

 

SYS@ENMOEDU >select * from test;

 

         A

----------

         4

 

SYS@ENMOEDU >commit;

 

Commit complete.

 

2)执行闪回查询

 SYS@ENMOEDU >select versions_startscn, versions_endscn, versions_xid,

                versions_operation, a

                   from test versions between scn minvalue and maxvalue;

 

VERSIONS_STARTSCN VERSIONS_ENDSCN VERSIONS_XID     V          A

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

          1404855                 02000B0078030000 U          4

          1404831                 04000900D5020000 D          2

          1404827                 010001008F020000 D          1

          1404787         1404855 0300050075030000 I          3

          1404787         1404831 0300050075030000 I          2

          1404787         1404827 0300050075030000 I          1

 

6 rows selected.

 

SYS@ENMOEDU > select versions_starttime, versions_endtime, versions_xid,

               versions_operation, a

                 from test versions between timestamp minvalue and maxvalue;

 

VERSIONS_STARTTIME   VERSIONS_ENDTIME             VERSIONS_XID         V     A

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

03-FEB-14 11.33.57 AM                            02000B0078030000       U    4

03-FEB-14 11.33.17 AM                            04000900D5020000       D    2

03-FEB-14 11.33.11 AM                            010001008F020000       D    1

03-FEB-14 11.31.58 AM  03-FEB-14 11.33.57 AM     0300050075030000       I    3

03-FEB-14 11.31.58 AM  03-FEB-14 11.33.17 AM     0300050075030000       I    2

03-FEB-14 11.31.58 AM  03-FEB-14 11.33.11 AM     0300050075030000       I    1

 

6 rows selected.

 

【小结】

可以得出在闪回查询的时候,即可以是用SCN指定查询的范围,也可以是timestamp指定查询的时间范围,因此选择AC

【答案】 AC

 

相关参考

http://docs.oracle.com/cd/E11882_01/appdev.112/e41502/adfns_flashback.htm#ADFNS622

 

来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/29435844/viewspace-1078500/,如需转载,请注明出处,否则将追究法律责任。

请登录后发表评论 登录
全部评论

注册时间:2014-01-14

  • 博文量
    41
  • 访问量
    190453