我正在使用PostgreSQL上的表返回函数(使用pgAdmin 4)。它曾经运作良好,但由于某种原因,我在尝试修改函数时收到此错误消息:
错误:输入“TABLE(id integer,id_scenario integer,date_valid 时间戳 机智“不存在 注意:标识符“TABLE(id integer,id_scenario integer,date_valid 没有时区的时间戳,dni_q95双精度,csp_forecast_q95 双精度,storage_q95双精度)“将被截断为 “TABLE(id integer,id_scenario integer,date_valid timestamp wit”
我理解标识符不能超过63个字节,因此我的代码行会被截断。如果有人可以帮我解决这两个问题,我将非常感激:
为什么这条线突然被识别为标识符?
如何解决这个问题,知道我需要返回所有这些列?
这是函数体:
CREATE OR REPLACE FUNCTION public.csp_park_95(id_park integer)
RETURNS SETOF "TABLE(id integer, id_scenario integer, date_valid
timestamp without time zone, dni_q95 double precision, csp_forecast_q95
double precision, storage_q95 double precision)"
LANGUAGE 'sql'
COST 100.0
VOLATILE
ROWS 1000.0
AS $function$
-- irrelevant code
$function$;
ALTER FUNCTION public.csp_park_95(integer)
OWNER TO "POC_kacare_admin";
答案 0 :(得分:0)
尝试删除双引号,如下所示:
CREATE OR REPLACE FUNCTION public.csp_park_95(id_park integer)
RETURNS TABLE(id integer, id_scenario integer, date_valid
timestamp without time zone, dni_q95 double precision, csp_forecast_q95
double precision, storage_q95 double precision)
LANGUAGE 'sql'
COST 100.0
VOLATILE
ROWS 1000.0
AS $function$
-- irrelevant code
$function$;