【问题标题】:Cast Const Integer to Bigint in Postgres在 Postgres 中将 Const Integer 转换为 Bigint
【发布时间】:2012-03-20 19:16:45
【问题描述】:

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

【问题讨论】:

    标签: sql postgresql casting type-conversion


    【解决方案1】:

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

    所以,你可以简单地做编译器要求的)

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

    【讨论】:

    • 我为我的迟钝道歉,但你能更具体一点吗?我很难做到这一点。我已经使用 Postgres 大约 10 个小时了。 ://
    • 午饭后我会提供准确的sn-p)
    • 原来更简单。看看吧。
    • 太棒了,蝙蝠侠!如果可以的话,我会多次投票。
    猜你喜欢
    • 1970-01-01
    • 2021-02-03
    • 1970-01-01
    • 2015-11-10
    • 2017-06-03
    • 1970-01-01
    • 2018-05-25
    • 1970-01-01
    相关资源
    最近更新 更多