Once I've gotten multiple values back from a plpgsql function,
how do I actually reference those values in another plpgsql
function?  I've tried several syntaxes and keep getting errors.

Various attempts are below.

Thanks.

On 2004.09.08 15:59 Joe Conway wrote:


Ah yes, that works too. For the record:

CREATE TYPE returntype AS (a INT, b INT);
CREATE OR REPLACE FUNCTION return_multiple()
   RETURNS returntype
   LANGUAGE plpgsql
   AS '
   DECLARE
     myvar returntype%rowtype;
   BEGIN
     myvar.a := 1;
     myvar.b := 2;
     RETURN myvar;
   END;
';
SELECT * FROM return_multiple();
 a | b
---+---
 1 | 2
(1 row)

PostgreSQL 7.3.4 on i386-redhat-linux-gnu, compiled by GCC i386-redhat-linux-gcc (GCC) 3.2.2 20030222 (Red Hat Linux 3.2.2-5)



CREATE FUNCTION return_multiple2() RETURNS returntype LANGUAGE plpgsql AS '

  DECLARE
    myvar returntype%rowtype;
    a INT;
    b INT;

  BEGIN

--    SELECT INTO a, b FROM return_multiple();
    SELECT INTO a, b return_multiple();
    myvar.a := a;
    myvar.b := b;

--    SELECT INTO myvar return_multiple();

    RETURN  myvar;
  END;
';


Karl <[EMAIL PROTECTED]> Free Software: "You don't pay back, you pay forward." -- Robert A. Heinlein

---------------------------(end of broadcast)---------------------------
TIP 2: you can get off all lists at once with the unregister command
   (send "unregister YourEmailAddressHere" to [EMAIL PROTECTED])

Reply via email to