Вы можете использовать выражение «rownum», например:
cur.execute("update TABLE set ROW = rownum where ANOTHER_ROW is null")
Это начнется со значения 1 и будет увеличиваться на единицу для каждой обновленной строки.
Если вы хотитеДля большего контроля над значением, которое вы хотите установить, вы также можете сделать следующее в PL / SQL (не проверено):
cur.execute("""
declare
t_NewValue number;
cursor c_Data is
select ROW, ANOTHER_ROW
from TABLE
where ANOTHER_ROW is null
for update;
begin
t_NewValue := 1;
for row in c_Data loop
update TABLE set ROW = t_NewValue
where current of c_Data;
t_NewValue := t_NewValue + 1;
end loop;
end;""")
Это дает вам максимальный контроль.Вы можете использовать любую логику, которая вам нужна, чтобы контролировать, каким должно быть новое значение.