我正在我的PostgreSQL中创建一个函数但是我得到了这个语法错误,我的想法用尽了可能出错的地方......请协助。
CREATE OR REPLACE FUNCTION get_docName(IN p_docId_id bigint)
RETURNS TABLE(name varchar) AS
$BODY$
begin
RETURN query SELECT name * FROM (documents) where id=p_docId
end;
$BODY$
LANGUAGE sql STABLE;
ALTER FUNCTION public.get_documents(IN bigint)
OWNER TO postgres;
错误:
ERROR: SyntaxError at „RETURN“
LINE 8: RETURN query SELECT * FROM (
^
********** Error **********
ERROR: SyntaxError at „RETURN“
SQL state: 42601
Character: 173
答案 0 :(得分:2)
您正在尝试在SQL函数中使用PL / PgSQL语法。您还忘记了SELECT
。
声明它LANGUAGE plpgsql
。或者,由于函数非常简单,只需将主体替换为有效的sql函数语法:
$BODY$
SELECT name * FROM (documents) where id=p_docId;
$BODY$
虽然SQL语句的自身也是无效的 - name *
?