Consulta de actualización de Oracle para actualizar registros en orden secuencial
Tengo una tabla en Oracle SQL cuyos identificadores están en orden secuencial creciente, pero hay huecos en los identificadores debido a la edición, p. los identificadores son actualmente algo así como
22
23
24
32
33
44
...etc
Revisé una publicación y la solución proporcionada fue la siguiente:
update (select t.*, row_number() over (order by id) as newid) toupdate
set id = newid
Solución proporcionada anteriormente.
Ahora mi consulta: 1) Supongo que falta la "cláusula From" en la consulta anterior.
Consulta actualizada:
update (select t.*,
row_number() over (order by emp_id) as newid
from employee t ) toupdate
set emp_id = newid;
2) Cuando ejecuto la consulta anterior, me da el error "La operación de manipulación de datos no es legal en esta vista".
¿Alguien puede explicar cómo funcionaron las soluciones mencionadas aquí? ¿Alguien puede publicar la consulta de actualización completa? Gracias.