A little plsql should suffice
SQL> declare
2 type ridlist is table of rowid index by pls_integer;
3 l_rowid ridlist;
4 begin
5 select rowid
6 bulk collect into l_rowid
7 from T
8 order by id;
9
10 forall i in 1 .. l_rowid.count
11 update t set order_col = sq_t.nextval
12 where rowid = l_rowid(i);
13 end;
14 /
PL/SQL procedure successfully completed.
SQL>
SQL> select * from t;
ID ORDER_COL
---------- ----------
2 2
4 4
3 3
1 1
5 5