Unlock a world of possibilities! Login now and discover the exclusive benefits awaiting you.
Buenos días, estoy cargando datos desde un odbc que apunta a una base de datos de Oracle, y me da un error en una select, debido al formato de los datos. El error es el siguiente:
ERROR at line 1:
ORA-01843: not a valid month
ORA-06512: at "EPSILON.F_LABORALES_MES", line 1
Me han comentado que con la sentencia
ALTER SESSION SET NLS_DATE_FORMAT="DD/MM/YYYY HH24:MI:SS";
se solucionaría este error, pero no sé en que parte del script ponerla.
Saludos y gracias a todos
Hola David,
También me ha pasado el mismo error, pero al trabajar con una base de datos oracles, hay veces que no me reconoce el mes de la consulta.
Por lo general lo soluciono pasandole el formateo del mes al query con la funcion to_date(). Me seria más util que publicaras la query para poder ver con detalle la consulta.
Hola Manuel,
Antes de nada, gracias por la respuesta,
El caso es que la select que ejecuto es sobre una vista, en la cual no puedo darle formato, ya que el campo MES, ya está calculado en esta tabla.
Adjunto la select que me está dando los problemas.
SELECT ID_EMPRESA||'-'||ID_TRABAJADOR||'-'||ID_SECUENCIA AS ZPK_TRABAJADOR, EJERCICIO,MES,ID_EMPRESA,ID_TRABAJADOR,ID_SECUENCIA, C_PROMEDIO,DIAS_LABORALES,HORASxDIAS_LAB,HORAS_COT, HORASxDIAS_NAT,DNT,DNM,DC,DT,DL_999,DF_999 FROM V_CM_PROMEDIO
El problema como veo, es del formato de fecha en la propia base de datos.
Me han comentado que si incluyo esta sentencia
ALTER SESSION SET NLS_DATE_FORMAT="DD/MM/YYYY HH24:MI:SS
el problema se solucionaría, lo que sucede, es que en el script la ponga donde la ponga, me da error.
Un saludo y muchas gracias por todo
Hola David
Espero no contestar una burrada, ya que no tengo conocimientos informaticos, pero como supongo que hacer una prueba no es un problema....
Añade la variable que te han comentado, hazlo detras de las variables que añade por defecto Qlik
pero pon solo esto
SET NLS_DATE_FORMAT="DD/MM/YYYY HH24:MI:SS
Francamente esto (ALTER SESSION), no tengo ni idea que es
Suerte
Saludos
Hola Luis,
He probado lo que me dices, y acepta la sentencia, pero sigue dando el fallo.
Pienso que al ser una vista, el error está en la creación de esta vista y deberé arreglarlo en la base de datos de oracle.
Aún así, gracias por la solución.
Saludos.
David.
Hola David,
Por lo que comentas del error, me parece que es únicamente problema con Oracle.
De todos modos, no veo, en la consulta que nos muestras, que se use "EPSILON.F_LABORALES_MES". Eso me lleva pensar que tal vez, esto que pongo entrecomillado sea algo que use la consulta que genera la vista, y por alguna razón no funcione bien y no esté bien construida la vista.
¿Es una vista que te han creado recientemente? ¿Conectándote desde un TOAD (por ejemplo) eres capaz de ver datos de esa vista y/o ejecutar la consulta y que te devueva datos?
Yo probaría o me aseguraría primero que la vista funciona correctamente, y ver si lanzando la consulta desde otro programa te da el mismo error de Oracle.
Saludos,
Borja.
Al final lo que estaba sucediendo, es que el formato en el cliente de oracle donde se estaba ejecutando la select, no era el mismo que el que tiene la base de datos, donde se origina la vista.
He cambiado el formato en el cliente, y la select ya se ejecuta correctamente.
Muchas gracias a todos por la información facilitada para la resolución del problema.
Un saludo.
David