refcursor returned by pl/psql to jdbc

From: Richard Emberson <emberson(at)phc(dot)net>
To: pgsql-general(at)postgresql(dot)org
Subject: refcursor returned by pl/psql to jdbc
Date: 2002-04-10 21:34:07
Message-ID: 3CB4AFCF.CD28791B@phc.net
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-general

Ok, I wanted to wrap a select statement with a PL/pgsql procedure
(information hiding, etc.)
So I have:

CREATE OR REPLACE FUNCTION user_data_select_all(BIGINT)
RETURNS REFCURSOR AS '
DECLARE
-- parameters
owner_id_p ALIAS FOR $1;

-- local variables
rc REFCURSOR;
BEGIN
OPEN rc FOR SELECT *
FROM user_data
WHERE
owner_id = owner_id_p;
RETURN rc;
END;
' LANGUAGE 'plpgsql' WITH (isstrict);

Now from within psql I get the following:

=> select user_data_select_all(12);
user_data_select_all
----------------------
<unnamed cursor 15>
(1 row)

I kind of expected to see the actual rows?!?

and from JDBC I get an exception:
Bad Long <unnamed cursor 1>
at org.postgresql.jdbc2.ResultSet.toLong(ResultSet.java:1498)
at org.postgresql.jdbc2.ResultSet.getLong(ResultSet.java:257)

So the question is can I wrap a select function as return a resultset to
JDBC?
Richard

Responses

Browse pgsql-general by date

  From Date Subject
Next Message Bruce Momjian 2002-04-10 21:37:56 Re: refcursor returned by pl/psql to jdbc
Previous Message Jean-Luc Lachance 2002-04-10 21:29:00 Re: [HACKERS] [Fwd: AW: More UB-Tree patent information]