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