Pregunta

Estoy haciendo una inserción de una C # .NET aplicación en una base de datos Oracle. La consulta que está fallando se ve algo como:

INSERT INTO staging (create_date) VALUES ('16-Nov-1999')

Cuando lo ejecuto desde SQL Navigator, funciona muy bien. A través de .NET, la base de datos arroja:

ORA-01858: a non-numeric character was found where a numeric was expected

Me corrió un par de casos de prueba y confirmó que es el año causando la excepción. Nada después de la fecha de 31 -Dic-1999' funciona muy bien.

¿Fue útil?

Solución

mejor utilizar la función TO_DATE al presentar valores que son para ser almacenados como fechas :

INSERT INTO staging 
   (create_date) 
VALUES 
   (TO_DATE('16-Nov-1999', 'DD-MON-YYYY'))

Otros consejos

El problema es con el uso del proveedor System.Data.OleDb genérico. La específica System.Data.OracleClient Oracle no tiene este problema.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top