powered by simpleCommunicator - 2.0.59     © 2025 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / IBM DB2, WebSphere, IMS, U2 [игнор отключен] [закрыт для гостей] / Шаблон многократного использования GLOBAL TEMPORARY TABLE в z/OS
3 сообщений из 3, страница 1 из 1
Шаблон многократного использования GLOBAL TEMPORARY TABLE в z/OS
    #35950604
demidovich
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Подскажите, пож-ста, как правильно объявлять/использовать временную таблицу в процедуре по аналогии с виндовой опцией WITH REPLACE. У меня повторный запуск процедуры из того же соединения вызывает ошибку

THE NAME (VERSION OR VOLUME SERIAL NUMBER) OF THE OBJECT TO BE DEFINED OR THE TARGET OF A RENAME STATEMENT IS IDENTICAL TO THE EXISTING NAME (VERSION OR VOLUME SERIAL NUMBER) SESSION.MYTEMPTABLE OF THE OBJECT TYPE TABLE

Таблицу создаю так:

Код: plaintext
DECLARE GLOBAL TEMPORARY TABLE SESSION.MYTEMPTABLE (id INT) ;
...
Рейтинг: 0 / 0
Шаблон многократного использования GLOBAL TEMPORARY TABLE в z/OS
    #35950875
demidovich
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Пока остановился на варианте

Код: plaintext
DECLARE GLOBAL TEMPORARY TABLE SESSION.MYTEMPTABLE (id INT) ON COMMIT DROP TABLE;
...
Рейтинг: 0 / 0
Период между сообщениями больше года.
Шаблон многократного использования GLOBAL TEMPORARY TABLE в z/OS
    #36717500
demidovich
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Мне как-то понадобилось прочитать снаружи процедуры записи из временной таблицы, создаваемой в этой процедуре, поэтому ON COMMIT DROP TABLE в этом случае не помог.
Возможно, кому-то пригодится мой вариант для реализации подобной задачи:

Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
create procedure test.testtmptable()
	DYNAMIC RESULT SETS  1 
begin
	begin
		DECLARE dummy INT;
		DECLARE CONTINUE HANDLER FOR SQLSTATE '42704' SET dummy =  1 ;
		
		DROP TABLE SESSION.testtable;
	end;

	begin
		declare global temporary table SESSION.testtable (id int) on commit preserve rows;

		begin
			declare c cursor with return for 
				select * from SESSION.testtable;
				
			insert into SESSION.testtable (id) values ( 1 );

			open c;
		end;
	end;
end@

Кстати, если кто-то знает более элегантный вид пустого выражения для CONTINUE HANDLER - поделитесь плиз!
...
Рейтинг: 0 / 0
3 сообщений из 3, страница 1 из 1
Форумы / IBM DB2, WebSphere, IMS, U2 [игнор отключен] [закрыт для гостей] / Шаблон многократного использования GLOBAL TEMPORARY TABLE в z/OS
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]