Oracle FAQ Your Portal to the Oracle Knowledge Grid

Home -> Community -> Mailing Lists -> Oracle-L -> RE: Cursors and result sets

RE: Cursors and result sets

From: Thapliyal, Deepak <>
Date: Fri, 21 Jul 2000 15:01:44 -0700
Message-Id: <>

as per my understanding .. as soon as you open a cursor .. oracle will generate a read consistant result set for u. you then start fetching records one at a time.

After some time has passed since u opened the curor, assume that some one else changes a record "X" and commits it. also assume that this record "X" is part of ur result set and it has not yet been read by ur cursor.

when its time for ur cursor to read record "X", read consistancy makes oracle aware that this record "X" was changed by someone, since the time the cursor was opened. Oracle will then go to the rbs and read the original record "X" from there, sans the new changes. btw, if oracle does not find the original record "X" in the rbs cause some third person used the inactive rbs extent containing record "X", then u will be greeted by the ora-**** snapshot too old error!!

note that behaviour is inspite of the fact that someone else already commited. logic .. the commit happened after oracle had already generated ur read consistant set.

hth in clearing the atleast a couple cowebs u had related to this topic.

please correct me gurus if this sounds like greek ..


PS: i remember a very good book by steve bobrowski explaining this concept very nicely with diagrams and all.

-----Original Message-----
From: Linda Hagedorn [] Sent: Friday, July 21, 2000 3:09 PM
To: Multiple recipients of list ORACLE-L Subject: Cursors and result sets


Do cursors read rows directly from the database (thus including any rows which were inserted into the table after the cursor was first opened), or do they create a list of rowid's and retrieve the rows one by one (thus skipping any rows which were inserted into the table after the rowid result set was created)?

Any referral to doc is appreciated.


Linda Hagedorn

Author: Linda Hagedorn

Fat City Network Services    -- (858) 538-5051  FAX: (858) 538-5051
San Diego, California        -- Public Internet access / Mailing Lists
To REMOVE yourself from this mailing list, send an E-Mail message
to: (note EXACT spelling of 'ListGuru') and in
the message BODY, include a line containing: UNSUB ORACLE-L
(or the name of mailing list you want to be removed from).  You may
also send the HELP command for other information (like subscribing).
Received on Fri Jul 21 2000 - 17:01:44 CDT

Original text of this message