Easy to find-- Google "bulk update in oracle". p=1:0:: :: P11_QUESTION_ID:2367352052686" id="ctl00_m_m_i_ctl00_gr_ctl07_bestanswerbody" class="textarea-bestanswerhidden" name="bestanswerbody" answerbody Id="4676708" / If you're going to go down the road of using a cursor, then looking at a bulk collect and update for all construct might be the way to go... Best Regards, Iudith" id="ctl00_m_m_i_ctl00_gr_ctl09_bestanswerbody" class="textarea-bestanswerhidden" name="bestanswerbody" answerbody Id="4677218" / Hello All, If you read Asktom thoroughly, you will discover that he ALWAYS, but ALWAYS recommends to perform in a single SQL everything that can be done in a single SQL and use PL/SQL only when necessary, and if yes, then NEVER commit inside of the loop.
Also, he ALWAYS recommends rebuilding a table if you have to update a large number of rows.
Best regards, Iudith" id="ctl00_m_m_i_ctl00_gr_ctl01_bestanswerbody" class="textarea-bestanswerhidden" name="bestanswerbody" answerbody Id="4676482" / Hello, When you have to update a very large number of rows, in most cases the best way is to recreate the tables with the new (updated) data in place of the old data. Eventually you can define the new table as NOLOGGING and/or perform each operation using PARALLEL.
Simply including the existing state of the SET clause can result in a huger performance improvement for UPDATE statements: As more people adopt 64-bit servers with giant data buffers, we see a delay caused by the database writer process having to scan through giant data buffers seeking dirty blocks.
Many shops are replacing their platter-style disks with solid-state disks, and creating a very small data buffer, just for the updates.
I understand that the first step will be: CREATE TEMP_T AS SELECT * FROM T_CONTACTS.
Then a merge my temp table with t_wrong_ids but how exchange this temp table back?