1

我创建了全局临时表。当我将代码作为单个脚本执行时,它工作正常。但是当我在 TOAD 中将其作为单个脚本执行时,则没有创建任何记录。只有一个空的全局临时表。

例如。

CREATE GLOBAL TEMPORARY TABLE TEMP_TRAN
(
COL1 NUMBER(9),
COL2 VARCHAR2(30),
COL3 DATE
) ON COMMIT PRESERVE ROWS
/

INSERT INTO TEMP_TRAN VALUES(1,'D',sysdate);
/
INSERT INTO TEMP_TRAN VALUES(2,'I',sysdate);
/
INSERT INTO TEMP_TRAN VALUES(3,'s',sysdate);
/
COMMIT;

当我一次运行上述代码时,它运行良好。但是当我将它作为脚本执行时,它运行良好,但临时表中没有记录。

有人可以帮我吗?

4

2 回答 2

2

既然您明确指出ON COMMIT PRESERVE ROWS,行似乎“消失”的唯一原因是 TOAD 使用了多个会话(即您正在使用会话 A 执行脚本并使用会话 B 查询表——这将看到一个空表)。

我很少使用 Toad,但我知道您可以使用此工具打开多个独立会话。

如果SELECT * FROM TEMP_TRAN;在提交后立即将查询放在脚本末尾会发生什么?

于 2010-04-22T14:32:07.543 回答
0

有时,您需要刷新 Toad 中的数据显示,以便它在标签页 Data 下的表格中显示更改。

于 2010-04-22T14:37:24.537 回答