我创建了全局临时表。当我将代码作为单个脚本执行时,它工作正常。但是当我在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;
当我一次运行上面的代码一个语句时它工作正常。但是当我作为脚本执行它时它运行正常,但临时表中没有记录。
有人可以帮我吗?
答案 0 :(得分:2)
因为你明确声明了ON COMMIT PRESERVE ROWS
,所以行似乎“消失”的唯一原因是TOAD使用了多个会话(即你用会话A执行脚本并查询表格会话B - 会看到一个空表。)
我不太使用Toad,但我知道你可以使用这个工具打开几个独立的会话。
如果在提交后立即将查询SELECT * FROM TEMP_TRAN;
放在脚本末尾会发生什么?
答案 1 :(得分:0)
有时,您需要刷新Toad中的数据显示,以便在表格下显示表格中的更改。