Ich habe diese Funktion:Fehler bei der Erstellung Funktion in 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$
Wenn er ausgeführt wird, zeigt dieser Fehler:
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"
Warum muss ich diesen Fehler, und wie kann ich es beheben?
Abgesehen von dem, was Laurenz schrieb, Sie fehlen auch die Funktion Körper. –
Sie müssen auch 'setof' entfernen, da RETURNS TABLE impliziert set und PostgreSQL wird Fehler zurückgeben, wenn Sie versuchen, diese zu mischen. –
Was Sie zeigen, ist * nicht * eine Funktion, nur die Kopfzeile mit einem beginnenden Dollar-Zitat, der Rest ist offensichtlich abgeschnitten. Bitte präsentiere immer eine komplette (minimale) Funktion - diejenige, die du tatsächlich hast (abzüglich möglicherweise irrelevanter Dinge im Körper). Und immer deine Version von Postgres. –