Я не говорю и не читаю по-французски, но похоже, что ошибка говорит вам, что определение вашей функции ожидает возвращаемого значения, но тело функции ничего не возвращает.
Теперь при создании скалярной функции SQL тело функции начинается с объявлений. Эти объявления предназначены для переменных и курсоров. Несколько неудачно, что вы создаете глобальную временную таблицу, используя оператор, начинающийся с DECLARE
. Он принадлежит не в декларациях, а в теле процедуры.
.-NOT ATOMIC-.
>>-+--------+--BEGIN--+------------+---------------------------->
'-label:-' '-ATOMIC-----'
>--+---------------------------------------+-------------------->
| .-----------------------------------. |
| V | |
'---+-SQL-variable-declaration--+-- ; +-'
+-SQL-condition-declaration-+
+-return-codes-declaration--+
'-INCLUDE-statement---------'
>--+--------------------------------------+--------------------->
| .----------------------------------. |
| V | |
'---+-DECLARE CURSOR-statement-+-- ; +-'
'-INCLUDE-statement--------'
>--+---------------------------------+-------------------------->
| .-----------------------------. |
| V | |
'---+-handler-declaration-+-- ; +-'
'-INCLUDE-statement---'
.---------------------------------.
V |
>----+-----------------------------+-+--END--+-------+---------><
'-SQL-procedure-statement-- ; ' '-label-'
Это часть оператора процедуры SQL!