From: | Brett Schwarz <schwarz(at)PacketVideo(dot)COM> |
---|---|
To: | "'pgsql-sql(at)postgresql(dot)org'" <pgsql-sql(at)postgresql(dot)org> |
Subject: | FUNCTION returing multiple rows |
Date: | 2001-01-02 21:15:12 |
Message-ID: | 72660A24B978D411BB8A00B0D03DFE0115117D@misty.packetvideo.com |
Views: | Raw Message | Whole Thread | Download mbox | Resend email |
Thread: | |
Lists: | pgsql-sql |
I have seen in the postings that it is not possible to return multiple rows
from a function.
However, when I look at the programmers guide (Ch. 4), it almost leads me to
believe otherwise:
---------------------8<---------------------------------------------------
The following more interesting example takes a single argument of type EMP,
and retrieves multiple results:
select function hobbies (EMP) returns set of HOBBIES
as 'select (HOBBIES.all) from HOBBIES
where $1.name = HOBBIES.person'
language 'sql';
---------------------8<---------------------------------------------------
I know that it only says 'multiple results' but with the 'HOBBIES.all', it
almost leads me to believe that it is retrieving all of the fields. Is 'all'
a keyword, or is this just one field in HOBBIES?
Also, is there any type of function return multiple rows (plpgsql, pltcl,
etc)?
If not, then is there anyway to fake it out to do this. Could I concatenate
the fields together to form one field per row. This would look like multiple
results of 1 field to PG. Also, if I did this, is there a delimiter I should
use?
for example:
select field1 || ':' || field2 || ':' || field3 from some_table;
Where ":" is the delimiter to send back.
Sorry for this question, but I am porting over an app from Oracle, and they
do not want to change the java code that calls this; so I need to make this
work somehow.
thanks,
--brett
From | Date | Subject | |
---|---|---|---|
Next Message | Diehl, Jeffrey | 2001-01-02 21:28:20 | Release date for 7.5? |
Previous Message | Albert REINER | 2001-01-02 20:19:48 | Support for arrays in PL/pgSQL |