Error de sintaxis en o cerca de “IF” en PostgreSQL.
Estoy intentando escribir una función SQL en PostgreSQL, pero tengo un error con el ‘IF’:
ERROR: Error de sintaxis en o cerca de “IF”
LINE 11: IF Type = ‘s’ THEN
No puedo entender el error de sintaxis.
(La función sin el IF funciona correctamente)
Mi código SQL:
CREATE OR REPLACE FUNCTION public.add_activity(IDactivity smallint, Date_Start date, Data_End date,
Type character varying, Name character varying DEFAULT NULL::character varying,
Typology character varying DEFAULT NULL::character varying, Client smallint DEFAULT NULL::smallint)
RETURNS void
LANGUAGE ‘sql’
AS $BODY$
INSERT INTO public.”Activity”
VALUES(IDactivity, Date_Start, Data_End, Type, Name);
IF Type = ‘s’ THEN
INSERT INTO public.”Service”
VALUES(IDactivity, Typology, Client);
END IF;
$BODY$;
¡Gracias!
davy.ai
El problema se encuentra con el lenguaje especificado para la función. Has definido la función como una función SQL en lugar de una función PL/pgSQL que permite estructuras de control como las instrucciones IF.
Para solucionar esto, cambia el lenguaje de ‘sql’ a ‘plpgsql’:
La función ahora comienza con
BEGIN
y termina conEND
, permitiendo estructuras de control como instrucciones IF.