J'ai cette fonction:Erreur dans la création de la fonction dans Postgres
CREATE OR REPLACE FUNCTION public.sp_rptadvsalincr(
p_flag character,
p_empcds character varying,
p_incrtype character varying)
RETURNS SETOF "TABLE(empcd character, name character varying, basic integer, incrdt timestamp without time zone, incrdbasic integer, nextincrdt timestamp without time zone, deptgenno character varying)"
LANGUAGE 'plpgsql'
COST 100.0
VOLATILE NOT LEAKPROOF
ROWS 1000.0
AS $function$
Lorsqu'il est exécuté, il affiche cette erreur:
ERROR: type "TABLE(empcd character, name character varying, basic integer, i" does not exist
NOTICE: identifier "TABLE(empcd character, name character varying, basic integer, incrdt timestamp without time zone, incrdbasic integer, nextincrdt timestamp without time zone, deptgenno character varying)" will be truncated to "TABLE(empcd character, name character varying, basic integer, i"
Pourquoi puis-je obtenir cette erreur, et comment puis-je résoudre ce problème?
En dehors de ce qui a écrit Laurenz, il vous manque aussi le corps de la fonction. –
Vous devez également supprimer 'setof' car RETURNS TABLE implique set et PostgreSQL retournera une erreur si vous essayez de les mixer. –
Ce que vous montrez n'est * pas * une fonction, seulement l'en-tête avec un devis de départ, le reste étant évidemment tronqué. Veuillez toujours présenter une fonction complète (minimale) - celle que vous avez réellement (moins les choses éventuellement non pertinentes dans le corps). Et toujours votre version de Postgres. –