Puoi farlo (funziona per le versioni 12c o successive):
alter table your_table add id number generated always as identity;
Tuttavia, questo genera anche nuovi valori per la colonna, per inserimenti futuri.
Anche su total row number
, questo dovrebbe quasi sempre generare valori da 1 a "numero riga totale", ma comunque (non so esattamente, quando potrebbe funzionare in modo errato), per verificarlo, dopo alter
puoi fare:select count(*), max(id) from your_table
. i valori devono corrispondere.