Saltar al contenido

ORA-00907 Falta el problema del paréntesis derecho: seleccione con orden por consulta de inserción interna

Daniela, parte de nuestro staff, nos hizo el favor de redactar este enunciado porque controla a la perfección el tema.

Solución:

Ambas respuestas actuales ignoran el hecho de que usar order by y rownum en la misma consulta es inherentemente peligroso. No hay absolutamente ninguna garantía de que obtendrá los datos que desea. Si desea la primera fila de una consulta ordenada, deber usa una subconsulta:

insert into my_tbl ( col1, col2 )
select data, 'more data'
  from ( select data
           from fir_tabl
          where id = 1
          order by created_on desc )
 where rownum = 1
       ;

También puede utilizar una función como rank para ordenar los datos en el método que desee, aunque si tuviera dos created_on fechas que eran idénticas terminaría con 2 valores con rnk = 1.

insert into my_tbl ( col1, col2 )
select data, 'more data'
  from ( select data
              , rank() over ( order by created_on desc ) as rnk
           from fir_tabl
          where id = 1)
 where rnk = 1
       ;

Finalizando este artículo puedes encontrar las aclaraciones de otros creadores, tú además puedes dejar el tuyo si lo crees conveniente.

¡Haz clic para puntuar esta entrada!
(Votos: 0 Promedio: 0)



Utiliza Nuestro Buscador

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *