DECLARE CURSOR C1 IS SELECT MAX (COLUMN_NAME1) AS HEADERID FROM TABLE_NAME WHERE CONDITIONS ; CURSOR C2 IS SELECT ID FROM TABLE_NAME WHERE CONDITIONS AND COLUMN_NAME1 IS NULL ; L_MAX_HEADERID number ; BEGIN OPEN C1; FETCH C1 INTO L_MAX_HEADERID; CLOSE C1; FOR R1 IN C2 LOOP L_MAX_HEADERID : = L_MAX_HEADERID + 1 ; UPDATE TABLE_NAME SET COLUMN_NAME1 = L_MAX_HEADERID WHERE ID = R1.ID; END LOOP; END ;