Как создать функцию в DB2, которая возвращает значение последовательности? - PullRequest
6 голосов
/ 13 мая 2011

Как создать функцию в DB2, которая получает значение из последовательности и возвращает его?

Должна быть возможность использовать эту функцию в операторе выбора или вставки, например:

select my_func() from xxx
insert into xxx values(my_func())

В основном я использую значение последовательности в сложной формуле, и я хотел бы инкапсулироватьвычисление внутри функции.

Редактировать: Я не спрашиваю, как просто получить следующее значение из последовательности.

1 Ответ

8 голосов
/ 20 мая 2011
CREATE FUNCTION "MYSCHEMA"."MY_FUNC"(PARAM1 VARCHAR(4000))
     RETURNS INT
SPECIFIC SQL110520140321900 BEGIN ATOMIC
     DECLARE VAR1 INT;
     DECLARE VAR2 INT;
     SET VAR1  = NEXTVAL FOR MY_SEQ;
     SET VAR2 = VAR1 + 2000; --or whatever magic you want to do
     RETURN VAR2;
END

Чтобы попробовать:

SELECT MY_FUNC('aa') FROM SYSIBM.SYSDUMMY1;
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...