Oracle FAQ | Your Portal to the Oracle Knowledge Grid |
![]() |
![]() |
Home -> Community -> Usenet -> c.d.o.misc -> Is oracle 8 joking with me?
"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 - 04:18:55 CST
![]() |
![]() |