Временные таблицы DB2: не хранить и не получать информацию - PullRequest
1 голос
/ 29 мая 2009

Я парень по 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;

Возвращаются нулевые строки. С чего бы это? Я создал табличное пространство и убедился, что таблица находится в области видимости на протяжении всего запроса.

Ответы [ 2 ]

1 голос
/ 30 мая 2009

Попробуйте:

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.

0 голосов
/ 31 мая 2009

В итоге я невольно получил доступ к созданию своих собственных таблиц (то есть для пользователя X я мог создать X.temp1). Так как этот запрос нужно выполнить только один раз, это прекрасно работает. Спасибо.

...