2015-06-10 35 views
2

以下是一个与Oracle SQL Expert考试相关的问题,有4个选择。它说正确的答案是C.但我有一个疑问,并认为D应该是答案,因为这使用Oracle FlashBack技术。请有人解释这一点。插入,更新和删除后的版本查询输出

谢谢。

Q)评估以下语句:

CREATE TABLE digits 
(id NUMBER(2), 
description VARCHAR2(15)); 
INSERT INTO digits VALUES (1,'ONE'); 
UPDATE digits SET description='TWO' WHERE id=1; 
INSERT INTO digits VALUES (2, 'TWO'); 
COMMIT; 
DELETE FROM digits; 
SELECT description FROM digits 
VERSIONS BETWEEN TIMESTAMP MINVALUE AND MAXVALUE; 

什么是上面查询的结果?答案:

答:它不会显示任何值。 B,它会显示一次TWO的值。

C.我将显示TWO两次。 D.将显示值ONE,TWO和TWO。

D.它将显示值ONE,TWO和TWO。

答案:C

回答

1

这是一个有点迷惑人的问题,但答案确实是C,因为“ONE”的原始值从来没有承诺,在相同的交易,并为加入两个记录结果只有一个包含两行的“版本”,两个都带有“TWO”的描述。