ERROR: syntax error at or near "RETURN" , PostgreSQL function
ERROR: syntax error at or near "RETURN" , PostgreSQL function
我正在尝试编写一个函数,通过添加人员 ID returns 来自我 table 的 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';
但是我收到了这个错误。error image
我搜索了教程和另一个以前的 post this
但没有得到帮助。提前致谢。
你并没有告诉函数有一系列的事情,所以它只希望有一个语句,而有两个。使用 BEGIN
和 END
:
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
我正在尝试编写一个函数,通过添加人员 ID returns 来自我 table 的 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';
但是我收到了这个错误。error image 我搜索了教程和另一个以前的 post this 但没有得到帮助。提前致谢。
你并没有告诉函数有一系列的事情,所以它只希望有一个语句,而有两个。使用 BEGIN
和 END
:
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