Oracle-Aktualisierungsabfrage zum Aktualisieren von Datensätzen in sequenzieller Reihenfolge

Ich habe eine Tabelle in Oracle SQL, deren IDs in aufsteigender, sequenzieller Reihenfolge angegeben sind, aber es gibt Lücken in den IDs aufgrund der Bearbeitung, z. die ids sind momentan so etwas wie

22 
23 
24 
32 
33 
44 
...etc

Ich überprüfe einen Beitrag und die bereitgestellte Lösung war wie folgt:

update (select t.*, row_number() over (order by id) as newid) toupdate
    set id = newid

Lösung Wird früher bereitgestellt.

Nun meine Abfrage: 1) Ich vermute, dass die "From-Klausel" in der obigen Abfrage fehlt.

Aktuelle Abfrage:

update (select t.*, 
              row_number() over (order by emp_id) as newid 
       from employee t ) toupdate 
set emp_id = newid; 

2) Wenn ich die obige Abfrage ausführe, erhalte ich die Fehlermeldung "Datenmanipulationsvorgang in dieser Ansicht nicht zulässig".

Kann mir jemand erklären, wie die genannten Lösungen hier funktionieren. kann jemand die vollständige Update-Abfrage posten. Vielen Dank

Antworten auf die Frage(6)

Ihre Antwort auf die Frage