在Postgres中将Const整数转换为Bigint

时间:2012-03-20 19:16:45

标签: sql postgresql casting type-conversion

运行以下脚本时出现以下错误。我的目标是在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;

1 个答案:

答案 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()