DB2 Temp Table - 在 DB2 Z OS 中检索插入的数据

DB2 Temp Table - Retrieving inserted Data in DB2 Z OS

我创建了一个临时文件 table 并插入到 DB2 ZOS 中,如下所述

CREATE GLOBAL TEMPORARY TABLE tmp2 (col1 INT)   

INSERT INTO tmp2 (col1) VALUES (10687);    
INSERT INTO tmp2 (col1) VALUES (10689);    
INSERT INTO tmp2 (col1) VALUES (10691);    

插入的数据没有任何问题,我正在尝试使用 select 查询检索数据我看不到我用上述值插入并获取的任何值。

select * from tmp2

我在 SQL 服务器和 运行 以下查询方面有较早的经验,可以正常工作。

Drop table #tmp2    
CREATE TABLE #tmp2 (col1 INT)    

INSERT INTO #tmp2 (col1) VALUES (10687);    
INSERT INTO #tmp2 (col1) VALUES (10689);   
INSERT INTO #tmp2 (col1) VALUES (10691);   
select * from #tmp2   

如何查看插入的数据?

查看 documentation 了解详细信息,有时这比等待答案更快。

当发生 COMMIT 时,CGTT(创建全局临时 table)对象不同于常规 table - 如果没有 with hold,它将清空 table光标在 table 上打开。如果您为数据库连接启用了 autocommit,那么结果将是您的 CGTT table 可能看起来是空的。

如果您想更好地控制提交行为(以及回滚行为和日志记录选项等),您可以考虑使用 DGTT (declare global temporary table),因为该语法允许您使用其他非默认选项,例如on commit preserve rowson rollback preserve rows。但是 DGTT 对象有更多的限制,包括它的限定符必须总是 SESSION 并且它的定义没有编目所以 table 对任何其他会话都是不可见的。

感谢大家的回复。

下面是一组查询,其实我在找

DECLARE GLOBAL TEMPORARY TABLE SESSION.tmp2 (col1 INTEGER) 
CCSID EBCDIC ON COMMIT PRESERVE ROWS;
INSERT INTO SESSION.tmp2 (col1) VALUES (10687);    
INSERT INTO SESSION.tmp2 (col1) VALUES (10689);    
INSERT INTO SESSION.tmp2 (col1) VALUES (10691);

select * from SESSION.tmp2;