oracle全局临时表

标签 oracle plsql toad

我创建了全局临时表。当我将代码作为单独的脚本执行时,它工作正常。但是当我在 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;

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

有人可以帮我解决这个问题吗?

最佳答案

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

我不太使用 Toad,但我知道您可以使用此工具打开多个独立 session 。

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

关于oracle全局临时表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2691656/

相关文章:

java - 如何使用IDE mybatis在插入/选择/更新数据库之前自动修剪参数

sql - PLSQL 'IN' 运算符

mysql - 在 MySQL 中添加可变数组 (VARRAY)

oracle - 为什么最后一个 PL/SQL 语句使用 dbms_assert.enquote_literal 失败?

sql - SELECT 语句从不同的表中获取所有列

mysql - 为什么在我的 MySQL 服务器上得到 'Binary logging not possible.'?

visual-studio-2010 - 在 Visual Studio 和 IIS 中使用 TOAD 的 SQL 跟踪器

Oracle STANDARD_HASH 结果在使用不同平台时显示不同的结果

java - Hibernate 和 Oracle 夸大序列递增

sql - 从旧样式到新样式的加入