postgresql создать функцию - PullRequest
0 голосов
/ 31 мая 2018

Что не так с этой функцией.Выдает ошибку «синтаксическая ошибка при возврате»

create function total (number1 integer, number2 integer, number3 integer) 
returns integer as $$
begin
    return number1 + number2 + number3;
end
$$
language sql

Ответы [ 2 ]

0 голосов
/ 31 мая 2018

Вы смешиваете синтаксис PL / pgSQL с синтаксисом SQL.Функция SQL не имеет части return, вместо нее используйте select и удалите блок begin ... end:

create function total (number1 integer, number2 integer, number3 integer) 
  returns integer 
as 
$$
    select number1 + number2 + number3;
$$
language sql;

Для таких простых выражений функция SQL более эффективна, чем PL / pgSQLфункция.

0 голосов
/ 31 мая 2018

Вам нужно изменить язык:

create function total (number1 integer, number2 integer, number3 integer) 
returns integer as
$$
begin
    return number1 + number2 + number3;
end;
$$
language plpgsql  --here

DBFiddle Demo

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...