我是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;
返回零行。那为什么会这样?我创建了表空间并验证了表在整个查询范围内。
答案 0 :(得分: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。
答案 1 :(得分:0)
我最终在不知不觉中有权创建自己的表(即对于用户X,我可以创建X.temp1)。由于此查询只需运行一次,因此工作正常。感谢。