oracle全局临时表

问题描述:

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

例如。

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; 

当我一次运行上面的代码一条语句它工作正常。但是当我将它作为脚本执行时,它运行良好,但临时表中没有记录。

任何人都可以帮助我吗?

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

我不使用蟾蜍很多,但我知道你可以用这个工具打开几个独立的会话。

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

+1

Toad在后台会话中运行一些脚本,以便在该会话退出后插入的行“消失”。 在SQL * Plus中尝试它,你应该看到预期的行。 – 2010-04-22 14:38:56

+0

它显示记录然后 – niceApp 2010-04-22 14:45:15

+0

当我把查询SELECT * FROM TEMP_TRAN;在提交之后立即结束我的脚本,记录显示出来。 – niceApp 2010-04-22 14:48:07

有时,您需要刷新Toad中的数据显示,以便显示表格内数据页面下的更改。