1

我是一名 MSSQL 专家,但我正在处理一个 DB2 查询,该查询需要创建一个临时表、插入其中并使用它进行处理。作为一个大大缩短的测试,我正在使用以下查询,它提供了相同的结果..

declare global temporary table tt_testingSyntax (id int);
insert into session.tt_testingSyntax (id) values (1);
insert into session.tt_testingSyntax (id) values (2);
insert into session.tt_testingSyntax (id) values (3);
insert into session.tt_testingSyntax (id) values (4);
select * from session.tt_testingSyntax;

返回零行。为什么会这样?我已经创建了表空间并验证了该表在整个查询范围内。

4

2 回答 2

1

尝试:

declare global temporary table tt_testingSyntax (id int) 
ON COMMIT PRESERVE ROWS NOT LOGGED;

insert into session.tt_testingSyntax (id) values (1);
insert into session.tt_testingSyntax (id) values (2);
insert into session.tt_testingSyntax (id) values (3);
insert into session.tt_testingSyntax (id) values (4);
select * from session.tt_testingSyntax;

有两个选项... ON COMMIT DELETE ROWS(默认)或 ON COMMIT PRESERVE ROWS。

于 2009-05-30T02:20:48.210 回答
0

我最终在不知不觉中有权创建自己的表(即,对于用户 X,我可以创建 X.temp1)。由于此查询只需要运行一次,因此可以正常工作。谢谢。

于 2009-05-30T22:15:20.227 回答