PostgreSQL语法错误创建功能

时间:2014-07-18 08:39:09

标签: sql function postgresql

我正在我的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

1 个答案:

答案 0 :(得分:2)

您正在尝试在SQL函数中使用PL / PgSQL语法。您还忘记了SELECT

末尾的分号

声明它LANGUAGE plpgsql。或者,由于函数非常简单,只需将主体替换为有效的sql函数语法:

$BODY$
SELECT name * FROM (documents) where id=p_docId;
$BODY$

虽然SQL语句的自身也是无效的 - name *