在Postgres中将Const整数转换为Bigint

Nic*_*aro 8 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;
Run Code Online (Sandbox Code Playgroud)

Tim*_*kov 15

你突然遇到了这个功能)记录需要两个或更多的字段.因此,当您只有一个变量时,结果必须是标量.

所以,你可以简单地做编译器问的问题)

CREATE OR REPLACE FUNCTION GetNumberOne(
        OUT numberone bigint)
      RETURNS bigint AS
    $BODY$

        SELECT CAST(1 AS BIGINT) AS "NUMBERONE";

    $BODY$
      LANGUAGE sql VOLATILE;
Run Code Online (Sandbox Code Playgroud)

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()
Run Code Online (Sandbox Code Playgroud)

  • 神奇的答案,蝙蝠侠!如果可以的话,我会不止一次地投票. (2认同)