Oracle
 sql >> Datenbank >  >> RDS >> Oracle

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

Diese Lösung auf dieselbe Frage, auf die Sie verwiesen haben, zeigt, wie es geht:

update employee set emp_id = (
  with tab as (
    select emp_id, rownum r
    from   (select emp_id from employee order by emp_id)
  )
  select r from tab where employee.emp_id = tab.emp_id
);

Das funktioniert. Sie können eine Ansicht, die eine Analysefunktion wie row_number enthält, nicht aktualisieren – siehe Oracle 12C-Dokumentation , suchen Sie nach "Hinweise zu aktualisierbaren Ansichten".