consejo calakra
Veo que cuando abres el cuerpo de la función lo haces con comillas simples.
returns as tipodato '
declare
Aunque esto es sintacticamente valido, es muy complicado manejar el uso indiscriminado de comillas simples cuando las requieres dentro del cuerpo. Por que tienes que validar que la comilla que abras, no cierre la comilla que requieres dentro del cuerpo.
Para esto se puede utilizar de la siguiente forma:
Código SQL:
Ver originalCREATE OR REPLACE FUNCTION nombre_funcion()
RETURNS INTEGER AS
$BODY$
DECLARE
variable INTEGER;
BEGIN
variable := 5;
RETURN variable;
END;
$BODY$
LANGUAGE 'plpgsql' VOLATILE
haciendo uso de $BODY$ como delimitador del cuerpo de la función, puedes hacer uso de sentencias como:
auxcab:='SELECT'; en vez de
auxcab:=''SELECT'';
Lo que hará mucho mas limpio tu codigo. Es mas, creo que el problema que estas teniendo lo están generando las comillas simples que no se cierran adecuadamente.
revisalo, pruebalo y cuentanos como te va.
saludos