这是我之前提出的问题的第二次迭代。我正在创建以下功能。
CREATE FUNCTION public.getpogstats(IN symbol character varying, IN pogtypeid integer, OUT closehi numeric, OUT closelo numeric, OUT dayhi numeric, OUT daylo numeric, OUT s7dhi numeric, OUT s7dlo numeric, OUT t13hi numeric, OUT t13lo numeric, OUT close numeric, OUT firstdate timestamp without time zone)
RETURNS record
LANGUAGE 'sql'
AS $function$
SELECT ROUND(MAX(closeprice), 2), ROUND(MIN(closeprice), 2), ROUND(MAX(dayhigh), 2), ROUND(MIN(daylow), 2), ROUND(MAX(sevendaydp), 2), ROUND(MIN(sevendaydp), 2),
ROUND(MAX(thirteendaydp), 2), ROUND(MIN(thirteendaydp), 2), MIN(datadate)
INTO closehi, closelo, dayhi, daylo, s7dhi, s7dlo, t13hi, t13lo, firstdate
FROM pogdata
JOIN symbol ON pogdata.symbolid = symbol.symbolid AND pogdata.pogtypeid = pogtypeid
WHERE symbol.symbol = symbol;
SELECT ROUND(closeprice, 2) INTO close FROM pogdata
JOIN symbol ON pogdata.symbolid = symbol.symbolid
WHERE datadate = (SELECT MAX(datadate)
FROM pogdata JOIN symbol ON pogdata.symbolid = symbol.symbolid AND pogdata.pogtypeid = pogtypeid
WHERE symbol.symbol = symbol)
AND symbol.symbol = symbol;
$function$;
ALTER FUNCTION public.getpogstats(character varying, integer)
OWNER TO postgres;
当我执行创建此函数时,我收到以下消息:
ERROR: syntax error at or near ","
LINE 8: INTO closehi, closelo, dayhi, daylo, s7dhi, s7dlo, t13hi...
^
********** Error **********
ERROR: syntax error at or near ","
SQL state: 42601
Character: 620
我正在尝试按照 PostgreSQL 上的文档进行操作
...其中目标可以是记录变量、行变量或简单变量和记录/行字段的逗号分隔列表。
OUT 参数算作“简单变量”吗?