1

我正在尝试编写一个函数,该函数通过添加 person id 从我的表中返回一个 json 数据。我正在使用 pgAdmin 4。

CREATE FUNCTION public.getuserinfo(IN userid bigint DEFAULT 00000, OUT uinfo json)
RETURNS SETOF json
LANGUAGE 'sql'
VOLATILE 
AS $BODY$
SELECT info into uinfo FROM public.users Where uid=userid;
RETURN uinfo;
$BODY$;
ALTER FUNCTION public.getuserinfo(bigint)
 OWNER TO sun;
GRANT EXECUTE ON FUNCTION public.getuserinfo(bigint) TO sun 
WITH GRANT OPTION;
REVOKE ALL ON FUNCTION public.getuserinfo(bigint) FROM 
PUBLIC;
COMMENT ON FUNCTION public.getuserinfo(bigint)
  IS 'gets user info by id';

但我收到了这个错误。 我在教程和之前的另一篇文章中搜索过错误图片, 但没有得到任何帮助。提前致谢。

4

1 回答 1

1

你没有告诉函数有一系列的事情,所以它期望只有一个语句存在并且有两个。使用BEGINEND

CREATE FUNCTION public.getuserinfo(IN userid bigint DEFAULT 00000, OUT uinfo json)
RETURNS SETOF json
VOLATILE 
AS $BODY$
BEGIN
  SELECT info into uinfo FROM public.users Where uid=userid;
  RETURN uinfo;
END;
$BODY$ LANGUAGE plpgsql;

语言也可能应该是 PL/PGSQL

于 2018-07-23T06:32:26.080 回答