I've got a PLSQL table with $ 30 million rows and I wish to update a area for those rows.

I attempted a loop (batching in the update into 100000 row times) however i can't use

update tableA set columnA=1 where rownum between lower and upper

in which the loop moves through new lower and upper values before the rowcount is exhausted.

Why would you like to perform the update iteratively? Why not wish to perform a simple UPDATE

UPDATE tableA
   SET columnA = 1

That't the best method to update a lot of rows. Additionally, it creates minimal quantity of REDO and UNDO.