From: | "Jordan S(dot) Jones" <list(at)racistnames(dot)com> |
---|---|
To: | Franco Bruno Borghesi <franco(at)akyasociados(dot)com(dot)ar>, pgsql-sql(at)postgresql(dot)org |
Subject: | Re: returning composite types. |
Date: | 2003-03-29 00:32:03 |
Message-ID: | 3E84E983.10206@racistnames.com |
Views: | Raw Message | Whole Thread | Download mbox | Resend email |
Thread: | |
Lists: | pgsql-sql |
Here is how I have been doing mine:
CREATE FUNCTION "myFunction" () RETURNS SETOF mytype
AS
'
DECLARE
r mytype%ROWTYPE;
BEGIN
FOR r IN [SELECT STATEMENT]
LOOP
RETURN NEXT r;
END LOOP;
RETURN;
END;
'
LANGUAGE 'plpgsql';
Hope this Helps..
Jordan S. Jones
Franco Bruno Borghesi wrote:
>Hi guys.
>
>I'm working with functions in my database, using plpgsql, but I reached a
>point where I realize I'm missing a concept: how do I return composite types
>from a function? I'll give you an example:
>
>CREATE TYPE mytype AS(
> val1 INTEGER,
> val2 INTEGER,
> val3 INTEGER,
> val4 INTEGER
>);
>
>If I want my function to return a "mytype" type, should I declare it as:
>CREATE FUNCTION myFunction() RETURNS mytype AS ...
>or maybe
>CREATE FUNCTION myFunction() RETURNS SETOF mytype AS ...
>
>and in any case, inside the function, how should I declare the variable
>holding the return value?:
>
>DECLARE
> result mytype;
>BEGIN
>...
> RETURN result;
>END;
>
>or maybe
>
>DECLARE
> result mytype%ROWTYPE;
>BEGIN
>...
> RETURN result;
>END;
>
>I've read the documentation and the examples in it, but I still don't
>understand what the right way is. If you could give an example of a function
>filling "mytipe" and returning it, it would really help me.
>
>Thanks in advance.
>
>
From | Date | Subject | |
---|---|---|---|
Next Message | Franco Bruno Borghesi | 2003-03-29 16:20:05 | Re: returning composite types. |
Previous Message | Franco Bruno Borghesi | 2003-03-28 23:40:58 | Re: Stored procedures |