From: | "Jim Wilson" <jimw(at)kelcomaine(dot)com> |
---|---|
To: | "Leo Martin Orfei" <orfeileo(at)yahoo(dot)com>, <pgsql-general(at)postgresql(dot)org> |
Subject: | Re: problems returning a resultset from a function |
Date: | 2004-09-13 15:29:34 |
Message-ID: | twig.1095089374.97040@kelcomaine.com |
Views: | Raw Message | Whole Thread | Download mbox | Resend email |
Thread: | |
Lists: | pgsql-general pgsql-jdbc |
Leo Martin Orfei said:
> hi.
>
> I have a problem with postgres functions.
> I need return a resultset from a postgres function and
> browse the resultset in a java app.
> I try with this simple function:
>
> create function test() returns catalog.refcursor as'
> declare aux refcursor;
> BEGIN
> OPEN aux FOR SELECT name, address FROM table;
> RETURN aux;
> END;
> 'LANGUAGE 'plpgsql';
>
My apologies if this has been responded to already as I am not currently
reading pgsql-jdbc and the archive three days behind. AFAIK there isn't
support for embedded work in jdbc, so it doesn't seem returning a cursor
directly would help (well maybe there is a way...I don't know).
In order to accomplish what I think you want to accomplish (which is to
establish a jdbc resultset object from a stored function) I've done the
following in the past:
Create a pl/pgsql function that returns a rowtype, DECLARED as follows:
-- the "table" in the following refers to an existing table definition
row table%rowtype;
In the pl/pgsql script you have something like:
-- return each row in the result set
for row in SELECT name, address FROM table loop
return next row;
end loop;
return;
Then in java call this using just a regular statement object:
// test() is the name of the stored function.
rs = statement.executeQuery("select * from test()");
while (rs.next()) {
...code to browse/process the rows...
}
Note the above examples might have a typo or two...but that's the general
idea. I have not used the stored procedure statement object as you did.
Perhaps that would be more portable.
Best,
Jim
--
Jim Wilson - IT Manager
Kelco Industries
PO Box 160
58 Main Street
Milbridge, ME 04658
207-546-7989 - FAX 207-546-2791
http://www.kelcomaine.com
From | Date | Subject | |
---|---|---|---|
Next Message | John Sidney-Woollett | 2004-09-13 15:40:21 | Re: Autonomous transaction |
Previous Message | Daniel Daoust | 2004-09-13 15:18:38 | Autonomous transaction |
From | Date | Subject | |
---|---|---|---|
Next Message | abhishekc | 2004-09-14 08:16:17 | jdbc driver |
Previous Message | Dave Cramer | 2004-09-13 13:08:58 | Re: Race condition in |