Re: refcursor returned by pl/psql to jdbc - Mailing list pgsql-jdbc

From Richard Emberson
Subject Re: refcursor returned by pl/psql to jdbc
Date
Msg-id 3CB5D43D.56EDE7A7@phc.net
Whole thread Raw
In response to Re: refcursor returned by pl/psql to jdbc  (Bruce Momjian <pgman@candle.pha.pa.us>)
List pgsql-jdbc
I name the cursor and the name is returned to JDBC .... but JDBC is expecting
a resultset.

CREATE OR REPLACE FUNCTION user_data_select_all(BIGINT, REFCURSOR)
RETURNS REFCURSOR AS '
DECLARE
    -- parameters
    owner_id_p ALIAS FOR $1;
BEGIN
    OPEN $2 FOR SELECT *
        FROM user_data
        WHERE
            owner_id = owner_id_p;
    RETURN $2;
END;
' LANGUAGE 'plpgsql' WITH (isstrict);

            Statement stmt = conn.createStatement();
            try {

                String cursorName = "XXXX";
                stmt.setCursorName(cursorName);
                ResultSet res =
                  stmt.executeQuery("begin; SELECT user_data_select_all("
                                +userId.toString()+",'"
                                +cursorName +"');");

                while (res.next()) {
                        Long ownerId = new Long(res.getLong(1));
................


Bad Long XXXX
        at org.postgresql.jdbc2.ResultSet.toLong(ResultSet.java:1498)
        at org.postgresql.jdbc2.ResultSet.getLong(ResultSet.java:257)


Bruce Momjian wrote:

> Dave Cramer wrote:
> > Richard,
> >
> > The problem is that the cursor is un-named. Is there a way to name the
> > cursor? jdbc doesn't know what to do with a column named <unnamed cursor
> > 1>
>
> Yes, you can name the cursor.  See my new doc section at the bottom of:
>
>         http://developer.postgresql.org/docs/postgres/plpgsql-cursors.html
>
> You have to pass the cursor name into the function.
>
> --
>   Bruce Momjian                        |  http://candle.pha.pa.us
>   pgman@candle.pha.pa.us               |  (610) 853-3000
>   +  If your life is a hard drive,     |  830 Blythe Avenue
>   +  Christ can be your backup.        |  Drexel Hill, Pennsylvania 19026


pgsql-jdbc by date:

Previous
From: Barry Lind
Date:
Subject: Re: refcursor returned by pl/psql to jdbc
Next
From: Richard Emberson
Date:
Subject: Re: refcursor returned by pl/psql to jdbc - SUCESSS