Oracle FAQ Your Portal to the Oracle Knowledge Grid
HOME | ASK QUESTION | ADD INFO | SEARCH | E-MAIL US
 

Home -> Community -> Mailing Lists -> Oracle-L -> RE: Hmmmmm

RE: Hmmmmm

From: Aponte, Tony <AponteT_at_hsn.net>
Date: Fri, 25 Jan 2002 08:33:29 -0800
Message-ID: <F001.003FB383.20020125081026@fatcity.com>

What you are observing is the concurrency mechanism as implemented in the Oracle rdbms.  I couldn't explain it better in an email so I suggest you get a hold of Expert One-on-one Oracle by Thomas Kyte, chapter 3 on Locking and Concurrency.  Another thought I have is that it looks like you are trying to implement a sequence number.  If the application can tolerate gaps in the numbers then you can use an rdbms-managed sequence number and use NEXTVAL in place of the SELECT FOR UPDATE.

HTH. Tony Aponte

-----Original Message-----

From: Stefan Jakobsson [mailto:stefan_at_areldata.se]

Sent: Friday, January 25, 2002 5:35 AM

To: Multiple recipients of list ORACLE-L

Subject: Hmmmmm

Having a small problem I need some help with...

The problem is trying to lock a row on a parameter table for an application.

The thing we need to do is following:

Read the value in one row. LOCK that row for other users, increase the value

with one

update the row with the new value and release if for access to other users.

We are trying to use the following SQL statement.

SELECT medlnr FROM parametrar FOR UPDATE OF medlnr NOWAIT;

But the thing is that when we try, anyone can head on in and select the same

value

and even make an update of that row...

What am I missing here?

Regards,

Stefan Jakobsson

Programmer

Arel-Data

--

Please see the official ORACLE-L FAQ: http://www.orafaq.com

--

Author: Stefan Jakobsson

  INET: stefan_at_areldata.se

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: ListGuru_at_fatcity.com (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). Received on Fri Jan 25 2002 - 10:33:29 CST

Original text of this message

HOME | ASK QUESTION | ADD INFO | SEARCH | E-MAIL US