Is oracle 8 joking with me?

From: KengLao <lklao_at_macau.ctm.net>
Date: 1999/11/23
Message-ID: <383A6A0F.327D70F9_at_macau.ctm.net>#1/1


"Is oracle 8 joking with me?", I think, when I try to do concurrent update, I've always got "can't serialize access for this transaction". I am sure the transactions modify the different data rows. As the online document, Oracle8 Server Concepts, said :

"Oracle generates an error when a serializable transaction
  tries to update or delete data modified by a transaction   that commits after the serializable transaction began:

  ORA-08177: Cannot serialize access for this transaction
"

So, I think this kind of error should never occur in my case, but actually it does.

A test sample is as follows. If you are interested in it, just try it.


Transaction 1
  create table tablename ( rec# decimal(2), descri varchar2(10) );   alter session set isolation_level = serializable;   insert into tablename ( rec# ) values (1);   commit;
  select * from tablename where rec#=1;

Transaction 2
  alter session set isolation_level = serializable;   insert into tablename ( rec# ) values (2);   commit;

  select * from tablename where rec#=2;
  update tablename set descri='record 2' where rec#=2;   commit;

Transaction 1
  update tablename set descri='record 1' where rec#=1;   <<RA-08177: Cannot serialize access for this transaction>>


Enjoy it.
Keng Received on Tue Nov 23 1999 - 00:00:00 CET

Original text of this message