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 rows
和 on 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;
我创建了一个临时文件 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 rows
和 on 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;