Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/tfs/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
DB2临时表-在DB2ZOS中检索插入的数据_Db2_Db2 Zos - Fatal编程技术网

DB2临时表-在DB2ZOS中检索插入的数据

DB2临时表-在DB2ZOS中检索插入的数据,db2,db2-zos,Db2,Db2 Zos,我已经创建了一个临时表并插入到DB2ZOS中,如下所述 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 query检索数据,但我无法看

我已经创建了一个临时表并插入到DB2ZOS中,如下所述

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 query检索数据,但我无法看到使用上述值插入的任何值并获取这些值

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   
如何查看插入的数据?

查看详细信息,有时这比等待答案要快

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

如果您希望对提交行为(回滚行为和日志记录选项等)有更多的控制,您可以考虑使用DGTT(),因为该语法允许您使用额外的非默认选项,如“代码>”,在“回滚保留行”中保留行和<代码>。但是DGTT对象有更多的限制,包括它的限定符必须始终是

会话
,并且它的定义没有编目,因此该表对任何其他会话都是不可见的。

检查详细信息,有时这比等待回答要快

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


如果您希望对提交行为(回滚行为和日志记录选项等)有更多的控制,您可以考虑使用DGTT(),因为该语法允许您使用额外的非默认选项,如“代码>”,在“回滚保留行”中保留行和<代码>。但是DGTT对象有更多的限制,包括它的限定符必须始终是

会话
,并且它的定义没有编目,因此该表对任何其他会话都是不可见的。

感谢所有回复

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

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;

谢谢你的回复

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

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;

这段代码很有效,我刚刚在SPUFI中成功运行了它,所以有两个问题。对于表的声明,您得到了什么样的sqlcode?SELECT与声明在同一个过程中吗?会话是线程,而不是作业或工作单元。这里Select语句不是声明的一部分,只是我在这里用来显示我在temp表(tmp2)中插入的值。这段代码有效,我刚刚在SPUFI so 2问题中成功运行了它。对于表的声明,您得到了什么样的sqlcode?SELECT与声明在同一个过程中吗?会话是线程,而不是作业或工作单元。这里Select语句不是声明的一部分,只是我在这里用来显示我在临时表(tmp2)中插入的值。