I'm getting the below error while running the below script. My goal is to create a function in Postgres to return 1 as a bigint. Help please!
hashtagpostgresnoobie
ERROR: function result type must be bigint because of OUT parameters
CREATE OR REPLACE FUNCTION GetNumberOne(
    OUT numberone bigint)
  RETURNS SETOF record AS
$BODY$
    SELECT CAST(1 AS BIGINT) AS "NUMBERONE";
$BODY$
  LANGUAGE sql VOLATILE;
                You've suddenly encountered the feature ) Record needs two and more fields. So when you have only one out variable, then result must be scalar.
So, you can simply do what compilers ask )
CREATE OR REPLACE FUNCTION GetNumberOne(
        OUT numberone bigint)
      RETURNS bigint AS
    $BODY$
        SELECT CAST(1 AS BIGINT) AS "NUMBERONE";
    $BODY$
      LANGUAGE sql VOLATILE;
plpgsql example:
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()
                        If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With