>> Also, the CURRENT OF locks the table so that no one can modify (or
>> even read) it while the transaction is taking place. This guarantees
>> nothing is changing between retrieving values from the cursor and
>> updating the table based on those values.
Actually, it is the FOR UPDATE that locks the table.....
>How? How can I update by ROWID? I was thinking to update
>by PRIMARY_KEY...
DECLARE
CURSOR EmpCursor IS
SELECT rowid, ....
FROM Emp;
BEGIN
FOR EmpRec IN EmpCursor LOOP
UPDATE EMP
SET SALARY = SALARY * 1.08
WHERE rowid = EmpRec.rowid;
END LOOP;
END;
Kevin
-----Original Message-----
Sent: Friday, July 11, 2003 4:09 PM
To: Multiple recipients of list ORACLE-L
--- Chris Stephens <[EMAIL PROTECTED]> wrote:
> Also, the CURRENT OF locks the table so that no one can modify (or
> even read) it while the transaction is taking place. This guarantees
> nothing is changing between retrieving values from the cursor and
> updating the table based on those values.
OK, fair enough.
> The second example has to run the update statement seperately.
> CURRENT OF can go directly to the row(s) affected. CURRENT OF
> still has to modify each block header in the table to lock which
> is a small performance hit.
So CURRENT OF has to lock, so its slower, right?
Does it have any advantages after all?
>To prevent that you could update by rowid
How? How can I update by ROWID? I was thinking to update
by PRIMARY_KEY...
> and avoid the header updates.
.. what "header" updates?
thx
maa
__________________________________
Do you Yahoo!?
SBC Yahoo! DSL - Now only $29.95 per month!
http://sbc.yahoo.com
--
Please see the official ORACLE-L FAQ: http://www.orafaq.net
--
Author: MaryAnn Atkinson
INET: [EMAIL PROTECTED]
Fat City Network Services -- 858-538-5051 http://www.fatcity.com
San Diego, California -- Mailing list and web hosting services
---------------------------------------------------------------------
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).
--
Please see the official ORACLE-L FAQ: http://www.orafaq.net
--
Author: Kevin Toepke
INET: [EMAIL PROTECTED]
Fat City Network Services -- 858-538-5051 http://www.fatcity.com
San Diego, California -- Mailing list and web hosting services
---------------------------------------------------------------------
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).