Domanda

sto facendo un inserto da un C # .NET applicazione in un database Oracle. La query che non riesce sembra qualcosa di simile:

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

Quando l'eseguo da SQL Navigator, funziona benissimo. Attraverso .NET, il database getta:

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

ho eseguito alcuni casi di test e ha confermato che è l'anno che causa l'eccezione. Tutto ciò dopo la data del 31 -Dec-1999' funziona bene.

È stato utile?

Soluzione

meglio usare il funzione TO_DATE al momento della presentazione dei valori che devono essere memorizzati come le date :

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

Altri suggerimenti

Il problema è con l'utilizzo del provider di System.Data.OleDb generico. La specifica System.Data.OracleClient Oracle non ha questo problema.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top