Re: open "cursors" on the server

From: Vladimir M. Zakharychev <vladimir.zakharychev_at_gmail.com>
Date: Tue, 19 Aug 2008 02:51:57 -0700 (PDT)
Message-ID: <8a858dea-6447-483b-bd01-f4eec3b8a782@k30g2000hse.googlegroups.com>


On Aug 19, 11:21 am, "Micha P." <p..._at_gmx.li> wrote:
> Hi,
> i need something to know:
> if i have a java programm and send some sql statements via jdbc to the
> oracle server, then i will store the resultset in a resultset variable
> (without getting any data of a row from the server).
> now its possible, that eg 10 hours later, the programm  use the
> resultsetobject and begin to compute the data (so with .nextrecord the data
> of the rows are needed from the server).
>
> (You can compare this szenario with open a cursor but getting the data of
> this cursor could be done 10 hours later.)
>
> What data may i get? will i get the data, that was on the server, when i
> send the sql statement? or will i get the data, when i compute the
> resultset?
> Remember: the data on the server can changed?
>
> How do oracle manage this?
>
> Greets
>
> Micha

You either get the data as it was when the cursor was opened or, more likely, especially on a busy system with high transaction volume, you'll receive ORA-01555 error ("snapshot too old") because Oracle will be unable to reconstruct the data as it was 10 hours ago. For more details on Oracle architecture and concurrency model I'd highly recommend you to read through the Oracle Concepts manual. All Oracle documentation is available at http://docs.oracle.com.

Hth,

   Vladimir M. Zakharychev
   N-Networks, makers of Dynamic PSP(tm)    http://www.dynamicpsp.com Received on Tue Aug 19 2008 - 04:51:57 CDT

Original text of this message