miércoles, 28 de diciembre de 2011

ORA-01858 - se ha encontrado un carácter no numérico (Solucionado)


Me encontré con este error: ORA-01858. Al hacer una comparación de fechas.

ORA-01858: se ha encontrado un carácter no numérico donde se esperaba uno numérico
01858. 00000 -  "a non-numeric character was found where a numeric was expected"
*Cause:    The input data to be converted using a date format model was
           incorrect.  The input data did not contain a number where a number was
           required by the format model.
*Action:   Fix the input data or the date format model to make sure the
           elements match in number and type.  Then retry the operation.


 En la consulta uso lo siguiente:
..
WHERE TO_DATE(DEACTIVATION_DATE,'DDMMYY')=TO_DATE(SYSDATE,'DDMMYY')-1;

La causa de este error, es que dado el formato,  no se encuentran los valores numéricos en el lugar que son requeridos.

Y la solución es formatear correctamente las fechas:
..
WHERE TO_DATE(DEACTIVATION_DATE,'dd-mm-yy')=TO_DATE(SYSDATE,'dd-mm-yy')-1;    



No hay comentarios: