AFAIK ref cursors can only be accessed as ResultSets. ResultSet is essentially 
a JDBC abstraction of a cursor.

Andrus

On Sep 20, 2013, at 3:34 PM, Mattaboni Francesco 
<[email protected]> wrote:

> Thanks for the answer!
> However our problem is a little different.
> In stackoverflow example the result is following DataRow:
> 
> {o_rc_source=org.postgresql.jdbc4.Jdbc4ResultSet@4bd27069,
> o_s_exitmsg=Ok,
> o_n_exitflag=11}
> 
> and refcursor is accessible as a ResultSet.
> With the statement "param.setType(OracleAdapter.getOracleCursorType())" we 
> set the OTHER parameter type as "OracleCursorType" and what we get is a 
> cursor that is already mapped to a list of DataRow.
> Then we access the cursor directly as a collection of Cayenne DataRow objects 
> and not as a ResultSet.
> 
> Can we get the same behavior with Postgres or refcursors are accessible only 
> as a ResultSet?
> 
> Thanks in advance.
> 
> Francesco
> 
> 
> -----Original Message-----
> From: Andrus Adamchik [mailto:[email protected]]
> Sent: lunedì 9 settembre 2013 20.23
> To: [email protected]
> Cc: Mattaboni Francesco
> Subject: Re: Cayenne with Postgress : how to get data from cursor
> 
> While I don't have much recent production experience with PostgreSQL, I 
> recently did some research for a stackoverflow answer [1] (maybe that was 
> your question?). My overall experience was that Cayenne (and PostgreSQL JDBC 
> driver) would support pretty much any kind of PG function. Although coding 
> those functions is somewhat arcane (to me at least), I never had to resort to 
> any Oracle-like hacks.
> 
> Sorry if this is not very specific. Maybe you can post the example of your 
> PostgreSQL function, and someone will have a better idea.
> 
> Andrus
> 
> [1] 
> http://stackoverflow.com/questions/16921942/porting-apache-cayenne-from-oracle-to-postgresql
> 
> On Sep 9, 2013, at 4:03 PM, mr.abanjo <[email protected]> wrote:
> 
>> Hi all,
>> we need to switch the database from Oracle to Postgres.
>> Our implementation use Cayenne to map a store procedure that return
>> single type data and a cursor.
>> With single type data ( number, varchar  .... ) there's no problem.
>> All works fine.
>> The problem happens when we try to get data from a cursor. We mapped
>> it in data-map xml file as "OTHER". When we execute it the cursor is
>> empty ( but it must have a list of elements ).
>> 
>> We suppose that the "missing" part for Postgress is this one :
>> 
>> Procedure proc = getProcedure();
>> Iterator it = proc.getCallOutParameters().iterator();
>> while (it.hasNext()) {
>>        ProcedureParameter param = (ProcedureParameter) it.next();
>>         if (param.getType() == Types.OTHER) {
>>                 param.setType(OracleAdapter.getOracleCursorType());
>>          }
>> }
>> 
>> With Oracle we set the OTHER parameter type as "OracleCursorType".
>> There is a corresponding type for Postgress?
>> Maybe this is the problem, maybe no ... someone have any idea?
>> 
>> Thanks!
> 
> 
> ________________________________
> 
> Le informazioni contenute nella presente e-mail potrebbero essere 
> confidenziali e sono dirette unicamente ai destinatari sopra indicati. In 
> caso di ricezione da parte di persona diversa è vietato qualunque tipo di 
> distribuzione o copia. Chi riceva questo messaggio per errore è pregato di 
> inoltrarlo al mittente e di distruggere questa e-mail.
> 
> This e-mail may contain confidential information and is intended only for the 
> use of the addressee(s) named above. If the reader of this message is not the 
> intended recipient of this message, please note that distribution or copying 
> of this communication is forbidden. Anyone who receives this communication in 
> error should return it immediately to the sender and destroy the message.
> 

Reply via email to