Hi Bill, I didn't really do much checking, but my guess is that the 'WHERE CURRENT OF' works here because you're selecting * in the cursor.
If you, for instance, select columna_a as supposed to * then you will most likely get the error. My guess is that this is just how ORACLE locks the set when you select in the cursor; therefore, you don't get the error. But,like I said, if you only select column_a, and then, attempt to update column_b, you will most likely see the error that you might have expected. Regards. --- Bill Buchan <[EMAIL PROTECTED]> wrote: > > > Why does the following work? I open a cursor with > FOR UPDATE OF COLUMN_A > and then do an update of COLUMNB, WHERE CURRENT OF > the cursor. Surely I > shouldn't be allowed to do that? > (Ora 8.1.7.2) > > Any insight appreciated! > Thanks > - Bill. > > > SQLWKS> create table test_table > 2> ( > 3> column_a number, > 4> column_b number > 5> ) > 6> > Statement processed. > SQLWKS> insert into test_table values (1,2) > 2> > 1 row processed. > SQLWKS> insert into test_table values (2,3) > 2> > 1 row processed. > SQLWKS> insert into test_table values (3,4) > 2> > 1 row processed. > SQLWKS> declare > 2> cursor c1 is select * from > test_table for update of column_a; > 3> begin > 4> for i in c1 loop > 5> update test_table set > column_b = column_b * 2 > 6> where current of c1; > 7> end loop; > 8> end; > 9> > Statement processed. > SQLWKS> select * > 2> from test_table > 3> > COLUMN_A COLUMN_B > ---------- ---------- > 1 4 > 2 6 > 3 8 > 3 rows selected. > > > -- > Please see the official ORACLE-L FAQ: > http://www.orafaq.com > -- > Author: Bill Buchan > INET: [EMAIL PROTECTED] > > 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: [EMAIL PROTECTED] (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). __________________________________________________ Do You Yahoo!? NEW from Yahoo! GeoCities - quick and easy web site hosting, just $8.95/month. http://geocities.yahoo.com/ps/info1 -- Please see the official ORACLE-L FAQ: http://www.orafaq.com -- Author: Viktor INET: [EMAIL PROTECTED] 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: [EMAIL PROTECTED] (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).
