Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / IBM DB2, WebSphere, IMS, U2 [игнор отключен] [закрыт для гостей] / Использование Global Temporary Table при создании функции / 4 сообщений из 4, страница 1 из 1
06.08.2012, 15:07
    #37905805
eugenia-ch
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Использование Global Temporary Table при создании функции
Добрый день!
Создаю функцию вида:
Код: plsql
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
CREATE FUNCTION FUNC_1()
RETURNS TABLE (
VALUE_1 INTEGER,
VALUE_2 INTEGER,
VALUE_3 DECIMAL(15,2)
)
LANGUAGE SQL

BEGIN

DECLARE GLOBAL TEMPORARY TABLE SESSION.TABLE_TMP
(VALUE_1 INTEGER,VALUE_2 INTEGER,VALUE_3 DECIMAL(15,2));

FOR V1 AS CUR CURSOR FOR
select *
from TABLE_1
DO
	insert into SESSION.TABLE_TMP (VALUE_1,VALUE_2,VALUE_3)
	select VALUE_1,VALUE_2,VALUE_3
	from table(FUNC_2(V1.VALUE_1)) as T;
END FOR;

RETURN select VALUE_1,VALUE_2,VALUE_3
from SESSION.TABLE_TMP;
	
END;



Получаю:

DB21034E The command was processed as an SQL statement because it was not a
valid Command Line Processor command. During SQL processing it returned:
SQL0104N An unexpected token "studid" was found following "FOR; RETURN
select". Expected tokens may include: "(". LINE NUMBER=23. SQLSTATE=42601

SQL0104N An unexpected token "VALUE_1" was found following "FOR;
RETURN select". Expected tokens may include: "(


Прошу помощи в решении ситуации. Версия IBM DB2 Express-C 9.7.
Спасибо.
...
Рейтинг: 0 / 0
06.08.2012, 16:20
    #37905954
Mark Barinstein
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Использование Global Temporary Table при создании функции
eugenia-ch,

Добрый день.

1. Вы не можете в функции обращаться к declared global temporary table.
Можете использовать created global temporary table.
Вы создаёте CGTT 1 раз, информация о ней помещается в системный каталог, потом вы можете использовать её в функции.

2. Compiled Compout SQL нельзя использовать в табличной функции.
Используйте

BEGIN ATOMIC
...
END@

а не

BEGIN
END@
...
Рейтинг: 0 / 0
06.08.2012, 16:43
    #37905998
DB2NBie
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Использование Global Temporary Table при создании функции
eugenia-ch, синтаксис DEFINE GLOBAL TEMPORARY TABLE в функциях не поддерживается
http://database.ittoolbox.com/groups/technical-functional/db2-l/temporary-table-in-body-function-1333991
...
Рейтинг: 0 / 0
06.08.2012, 17:18
    #37906079
eugenia-ch
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Использование Global Temporary Table при создании функции
Mark Barinstein , DB2NBie , спасибо.
...
Рейтинг: 0 / 0
Форумы / IBM DB2, WebSphere, IMS, U2 [игнор отключен] [закрыт для гостей] / Использование Global Temporary Table при создании функции / 4 сообщений из 4, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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