2015-06-10 77 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」的描述。