【发布时间】:2019-03-12 08:22:25
【问题描述】:
我正在学习 Oracle 12c 中的闪回事务查询。
我执行了一些 DDL 和 DML 语句。
最后,我在 FLASHBACK_TRANSACTION_QUERY 视图上执行了一条 select 语句以查看 UNDO_SQL 值,但它没有返回任何行。
我很想知道为什么它没有给我任何行。
我研究并发现必须首先启用补充日志记录 (SELECT SUPPLEMENTAL_LOG_DATA_MIN FROM V$DATABASE;)。
此值为 YES。
查询如下:-
CREATE TABLE TestAgain
(
Fld1 VARCHAR2(3),
Fld2 NUMBER(3)
);
INSERT INTO TestAgain values ('XYZ', 1);
INSERT INTO TestAgain VALUES ('PQR', 2);
COMMIT;
DELETE FROM TestAgain;
SELECT UNDO_SQL FROM FLASHBACK_TRANSACTION_QUERY
WHERE XID = (SELECT DISTINCT(RAWTOHEX(VERSIONS_XID))
FROM TestAgain VERSIONS BETWEEN TIMESTAMP MINVALUE AND MAXVALUE);
最后一个查询没有返回任何行。 请帮我弄清楚我在这里缺少什么。 P.S.:我只是一个 SQL 初学者。
【问题讨论】:
标签: sql oracle transactions flashback