Re: Function Issue - Mailing list pgsql-sql

From ALMA TAHIR
Subject Re: Function Issue
Date
Msg-id 1393593190.2407.YahooMailNeo@web192706.mail.sg3.yahoo.com
Whole thread Raw
In response to Re: Function Issue  (Tom Lane <tgl@sss.pgh.pa.us>)
Responses Re: Function Issue
List pgsql-sql
hi,
thankyou for suggestions, its working now. I ma retrieving the ids in an int[] and then using one more cursor to read and return using the int[].



On Thursday, 27 February 2014 8:04 PM, Tom Lane <tgl@sss.pgh.pa.us> wrote:
ALMA TAHIR <almaheena2003@yahoo.co.in> writes:
> I want to open a ref cursor with select for update and then update
> the records and get the ref cursor in response back in java.

Your function has already sucked all the rows out of the cursor before
it returns it, so it's not surprising that further reads from the cursor
produce nothing.

You could try rewinding the cursor (see MOVE) but I'm not sure that will
help in this case, since the function has carefully ensured that none of
the rows pass the cursor query's WHERE condition anymore.  I think that
since the cursor used SELECT FOR UPDATE, it will not return the updated
rows even after rewinding.  (I could be wrong though, so it's worth

trying.)


I think you need to rethink what you're doing.  This seems like a fairly
silly application design: why not do all the processing you need on these
rows in one place?  Or at the very least, don't use one cursor to serve
two masters.  Possibly you could have the function return the rows itself
instead of passing back a refcursor.

            regards, tom lane


--
Sent via pgsql-sql mailing list (pgsql-sql@postgresql.org)
To make changes to your subscription:
http://www.postgresql.org/mailpref/pgsql-sql



pgsql-sql by date:

Previous
From: Jan Ostrochovsky
Date:
Subject: Re: how to effectively SELECT new "customers"
Next
From: David Johnston
Date:
Subject: Re: how to effectively SELECT new "customers"