Oracle FAQ | Your Portal to the Oracle Knowledge Grid |
Home -> Community -> Usenet -> c.d.o.misc -> Re: Is oracle 8 joking with me?
Hi,
I updated recently from Oracle 7.1 to Oracle 8 on Novell and had some troubles like this in my VB 6.0 softs.
I bypassed this by setting autocommit off before the statement: "select * from mytable where myselection for update" with the setconnection statement (see Oracle docs for details), update the rows like before and commit the transaction explicitely.
Sorry for my bad english, maybe the help was OK ?
Jérôme ZITTOUN
Erigne Informatique
mailto:jzittoun_at_erigne.com
KengLao a écrit :
>
> "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 Sun Nov 28 1999 - 14:07:37 CST