Hi! You could easily use rownum for doing this kind of update... Just do a commit after each update.
SQL> create table u (a number); Table created. SQL> alter table u modify a constraint un not null; Table altered. SQL> insert into u values (0); 1 row created. SQL> insert into u values (0); 1 row created. SQL> insert into u values (0); 1 row created. SQL> insert into u values (0); 1 row created. SQL> insert into u values (0); 1 row created. SQL> commit; Commit complete. SQL> update u set a = 1 where a = 0 and rownum <= 2; 2 rows updated. SQL> update u set a = 1 where a = 0 and rownum <= 2; 2 rows updated. SQL> update u set a = 1 where a = 0 and rownum <= 2; 1 row updated. SQL> update u set a = 1 where a = 0 and rownum <= 2; 0 rows updated. SQL> Tanel. ----- Original Message ----- To: "Multiple recipients of list ORACLE-L" <[EMAIL PROTECTED]> Sent: Wednesday, July 09, 2003 2:09 AM > I have a table of about one million records. > > About 100,000 of them have a flag which I need it set to 0. > > Because of the size of the rollback segment, I cannot > update them all and then commit, I need to do it in > sets of 1000 records. > > Do I need a cursor for this? > > I had something like that: > DECLARE > I BINARY_INTEGER; > > > Cursor MyCursor IS > SELECT * > FROM (Table_Name) > WHERE (Condition) > FOR UPDATE; > > BEGIN > I := 0; > FOR MyRec IN MyCursor LOOP > UPDATE (Table_name) > SET delete_flag = 1 > WHERE CURRENT OF MyCursor; > > I := I + 1; > IF MOD(I, 1000) = 0 THEN > COMMIT; > END IF; > > END LOOP; > END; > / > > But "FOR UPDATE" does not really work well, and at the 1000th record > when it reaches the commit, its dropping out of the loop. > > Can I use ROWNUM to update them in batches of 1000 per time? > > Thanks, > maa > > -- > 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: Tanel Poder 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).