Frage

Ich mache einen Einsatz aus einer C # .NET-Anwendung in eine Oracle-Datenbank. Die Abfrage, die in etwa so aussieht versagt:

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

Wenn ich es von SQL Navigator ausführen, wird es in Ordnung. Durch .NET, wirft die Datenbank:

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

lief ich ein paar Testfälle und bestätigte, dass es das Jahr ist die Ausnahme verursacht. Alles, was nach '31 -Dec-1999' läuft gut.

War es hilfreich?

Lösung

Besser das TO_DATE zu verwenden, wenn Werte einreichen, die als DATEs werden sollen, gespeichert :

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

Andere Tipps

Das Problem ist mit dem generischen System.Data.Oledb Provider. Die Oracle-spezifische System.Data.OracleClient dieses Problem nicht hat.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top