Rollback releases Cursor when...

From: Thomas W. Myers <t-myers_at_nwu.edu>
Date: Fri, 02 Dec 94 17:45:19 PST
Message-ID: <3boba9$905_at_news.acns.nwu.edu>


One of the developers at my sight asked me to post about this possible problem in Oracle.

Using Pro*C version 1.5.9 for VMS on an Alpha.

When a ROLLBACK is issued any existing cursor is free (destroyed) ONLY IF there is a modification to be rolled back.

Which is to say if you are using a cursor to select rows, and, say, in the loop do an insert or update, then roll it back, the cursor is gone so that another select in the loop will fail. If, however, you perform a rollback without modifying data (ie no insert or update) the cursor remains active.

The documentation says this:
> When MODE = [ANSI13 | ORACLE], explicit cursors not referenced in a
> CURRENT OF clause remain open accross rollbacks.
This appears to be a baldfaced lie since we have MODE = ORACLE. The other MODE option is supposed to cause ALL cursors to be closed. And this isn't happening either.

While it the demonstrated situation (It was isolation tested to prove the behavior) makes some sort of twisted sense (ROLLBACK ignored if nothing to ROLLBACK) it does violate both of the stated possibilites.

Feedback to Email or this group...     

-tom
Tom Myers Email: t-myers_at_nwu.edu
Data Administrator, Attorneys' Liability Assurance Society, Inc. Computer Studies Lecturer, University College, Northwestern University Received on Sat Dec 03 1994 - 02:45:19 CET

Original text of this message