oracle 模式 创建全局临时表global temporary

【 使用环境 】开发环境
【 OB 】Oracle模式
【 使用版本 】 4.2.3
【问题描述】创建临时表,插入数据查询不到,
【复现路径】create global temporary table tablename(db_id VARCHAR2(50));
INSERT INTO tablename values(1);
SELECT * from tablename ;
【附件及日志】建表成功,插入成功,查询为空

临时表保存仅在事务或会话期间存在的数据。
是在同一个事务或会话期间查询的嘛?

你好,你提的这个技术问题牵涉到OceanBase企业版范围内的功能细节。建议你通过以下方式寻求帮助:
1.如你所在的企业客户已签署OceanBase企业版销售合同,请你联系客户经理;
2.如你所在的企业客户尚未签署OceanBase企业版销售合同,你可通过OceanBase官网商务咨询页面留下你的联系方式,OceanBase企业版的业务顾问会在一个工作日内与你联系。
OceanBase官网商务咨询

是的,是在一个会话中执行的。

我在文档中找到了” ON COMMIT 子句控制是事务临时表还是 Session 临时表“,并且使用了官方提供的示例,”CREATE GLOBAL TEMPORARY TABLE tbl1(col1 INT) ON COMMIT DELETE ROWS;“,在同一个会话中依然无法查询到已经插入成功的数据。

INSERT INTO tablename VALUES (1, ‘a’,100),(2, ‘b’,200),(3, ‘a’,50);
SELECT * from tablename ;
试试


根据您提供的insert SQL 我修改了建表语句,并且执行后的结果还是查询不到

问题解决了,
on commit delete rows;-- 创建事务级临时表
on commit preserve rows;—创建会话级临时表
创建会话级的就可以查询到信息。

CREATE TABLE-OceanBase 数据库-OceanBase文档中心-分布式数据库使用文档