>> 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).