私はPostgreSQL(pgAdmin 4を使用)でテーブルを返す関数を扱っています。それはうまく動作するように使用されるが、機能を変更しようとしたとき、私は、このエラーメッセージが表示されますいくつかの理由:postgresqlは文字列を切り捨てます
ERROR: type "TABLE(id integer, id_scenario integer, date_valid timestamp wit" does not exist NOTICE: identifier "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)" will be truncated to "TABLE(id integer, id_scenario integer, date_valid timestamp wit"
私はコードの私のラインが切り捨てられますので、識別子は、長い63バイトを超えることはできません理解しています。なぜ、この行が突然識別子として認識されている
:誰かがこれらの2つの質問に私を助けることができれば、私は本当に感謝されるでしょうか?
これらの列がすべて返される必要があることを知って、この問題を回避するにはどうすればよいですか?ここで
関数本体である:
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";
を "*なぜ、このラインが突然識別子として認識されています?" *二重引用符は識別子用です:https://www.postgresql.org/docs/current/static/sql-syntax-lexical.html#SQL-SYNTAX-IDENTIFIERS –