#db2 #user-defined-functions
Вопрос:
Я пытаюсь написать функцию, используя modifies sql data
.
Вот мой код:
create function n1n2n3ToCityName()
returns table (cityname varchar(40),name1 varchar(40),name2
varchar(40),name3 varchar(40))
modifies sql data
language sql
begin
declare tempCityName varchar(40);
end;
Когда я пытаюсь скомпилировать это, возникает ошибка:
[42613][-628] Присутствуют множественные или конфликтующие ключевые слова, включающие предложение «ИЗМЕНЯЕТ ДАННЫЕ SQL».. SQLCODE=-628, SQLSTATE=42613, ДРАЙВЕР=4.26.14
Как я могу это исправить?
Ответ №1:
Табличные функции, изменяющие данные SQL, могут быть только встроенными, как указано в руководстве (см. Примечание 4). Встроенные функции характеризуются BEGIN ATOMIC
.
Заменить begin
на begin atomic
.