Saltar al contenido

ORA-01007: variable no en la lista de selección

Te recomendamos que revises esta respuesta en un ambiente controlado antes de enviarlo a producción, un saludo.

Solución:

Lanza oráculo ORA-01007 cuando las columnas de nuestra consulta no coinciden con la variable de destino.

La línea 53 es esta línea FETCH c2 INTO De_Dub_rec;por lo que la pista es que la proyección del cursor no coincide con el tipo de registro.

Su declaración SELECT de texto libre está desordenada, lo que dificulta la depuración. Ordenemos la proyección:

SELECT S.TRANS_GUID             AS OLD_TRANS_GUID
       , S.DETL_CLMNS_HASH      AS DETL_CLMNS_HASH1 
       , S.KEY_CLMNS_HASH       AS KEY_CLMNS_HASH1
       , S.RX_DSPNSD_DT         AS R_DSPNSD_DT
       , S.SUPPLIER_PHARMACY_CD AS SUPPLIER_PHARMACY_CD1 
FROM ...

Ahora es fácil ver que el orden de las columnas es diferente al del tipo attribute ordenar:

   TYPE rec_typ IS RECORD    
   (    
      OLD_TRANS_GUID        VARCHAR2 (255),
      R_DSPNSD_DT           DATE,    
      DETL_CLMNS_HASH1      VARCHAR2(255),
      KEY_CLMNS_HASH1       VARCHAR2(255),
      SUPPLIER_PHARMACY_CD1 VARCHAR2(200)       
   );    

Entonces su código está tratando de poner un string en una variable de fecha (y viceversa, pero al menos Oracle puede convertir eso).

Todo lo cual demuestra que el diseño claro no es una tontería para el TOC. La disciplina en la escritura de código nos ayuda a escribir mejor código más rápido al resaltar los errores obvios.

valoraciones y reseñas

Puedes proteger nuestra tarea exponiendo un comentario o puntuándolo te damos la bienvenida.

¡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 *