我试图让这个plpgsql函数工作:
CREATE OR REPLACE FUNCTION outofdate(actualdate varchar)
RETURNS TABLE(designacion varchar(255),timebeingrotten varchar(255))
AS $BODY$
SELECT designacao, actualdate - prazo
FROM alimento
WHERE prazo < actualdate;
$BODY$
LANGUAGE 'plpgsql' volatile;
SELECT *
From outofdate('12/12/2012');
它一直给我第2行的错误 - 表..
错误:“TABLE”或其附近的语法错误第2行:RETURNS TABLE(designacion varchar(255),timebeingrotten varch ... ^ ***错误***错误:语法错误在“TABLE”或附近SQL状态:42601性格:67
1 回答
我不确定,但也许您使用旧版本的pg而不支持
RETURNS TABLE
语法 . 您的示例中的下一个问题是PL / pgSQL语言的语法错误 - 请参阅手动语法 - 每个函数必须包含一个带有BEGIN ... END
的块 . 记录可以通过RETURN QUERY
语句返回 . 看看这个tutorial .呼叫: