2015-06-10 5 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; 

Что бы быть результатом вышеупомянутого запроса?

A. Он не будет показывать никаких значений.

B. Он будет отображать значение TWO один раз.

C. Он будет отображать значение ДВА дважды.

D. Он отображает значения ONE, TWO и TWO.

Ответ: C

ответ

1

Это немного каверзный вопрос, но ответ на самом деле C, так как первоначальное значение «ONE» никогда не было совершено, обе записи были добавлены в той же транзакции, и как результат есть только одна «версия», содержащая две строки, как с описанием «TWO».