DB2 临时表 - 检索 DB2 Z OS 中插入的数据



我创建了一个临时表并插入到 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 * from tmp2

我有较早的SQL Server经验,并运行了以下查询,这些查询没有任何问题。

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   

如何查看插入的数据?

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

当发生 COMMIT 时,CGTT(创建全局临时表(对象与常规表不同 - 如果表上没有打开with hold游标,它将清空表。如果您为数据库连接启用了自动提交,则结果将是您的 CGTT 表可能显示为空。

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

感谢所有回复。

下面是一组查询,实际上我一直在寻找

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;

相关内容

  • 没有找到相关文章

最新更新