运行以下脚本时出现以下错误。我的目标是在Postgres中创建一个函数,将1作为bigint返回。求救!
hashtagpostgresnoobie
错误:由于OUT参数
,函数结果类型必须是bigint
CREATE OR REPLACE FUNCTION GetNumberOne(
OUT numberone bigint)
RETURNS SETOF record AS
$BODY$
SELECT CAST(1 AS BIGINT) AS "NUMBERONE";
$BODY$
LANGUAGE sql VOLATILE;
答案 0 :(得分:15)
你突然遇到这个功能)记录需要两个或更多的字段。所以当你只有一个变量时,结果必须是标量。
所以,你可以简单地做编译器问的问题)
CREATE OR REPLACE FUNCTION GetNumberOne(
OUT numberone bigint)
RETURNS bigint AS
$BODY$
SELECT CAST(1 AS BIGINT) AS "NUMBERONE";
$BODY$
LANGUAGE sql VOLATILE;
plpgsql示例:
CREATE OR REPLACE FUNCTION NumberOne()
RETURNS bigint AS
$BODY$
DECLARE num bigint;
BEGIN
num := 1;
RETURN num;
END
$BODY$
LANGUAGE plpgsql VOLATILE;
select * from NumberOne()