Вы не нашли точку возврата для вашего запроса, а также пропало несколько ;
. Я не совсем уверен, чего вы хотите достичь с помощью этой функции, поскольку вы объявили, что функция вернет TEXT
, а оператора RETURN
нет.
Один из вариантов - ничего не возвращать и использовать RAISE
, как вы это делали - имейте в виду, что намерение RAISE
(без INFO
, EXCEPTION
, et c.) один - скорее для сообщения об ошибках:
CREATE OR REPLACE FUNCTION public.test_al1() RETURNS VOID LANGUAGE plpgsql
AS $BODY$
BEGIN
IF public.test() = 1 THEN
RAISE 'Errors';
ELSE
RAISE 'No errors';
END IF;
END
$BODY$;
.. или в качестве альтернативы вы можете немного упростить его, возвращая сообщение как TEXT
в предложении RETURN
.
CREATE OR REPLACE FUNCTION public.test_al1() RETURNS TEXT LANGUAGE plpgsql
AS $BODY$
DECLARE res TEXT DEFAULT 'No errors';
BEGIN
IF public.test() = 1 THEN
res := 'Errors';
END IF;
RETURN res;
END
$BODY$;
Дополнительная информация: CREATE FUNCTION