我正在将C#.NET应用程序插入到Oracle数据库中。失败的查询看起来像:

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

当我从SQL Navigator运行它时,它运行正常。通过.NET,数据库投掷:

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

我进行了一些测试用例,并确认这是导致例外的一年。 '31 -dec-1999'之后的任何东西都很好。

有帮助吗?

解决方案

最好使用 to_date函数 提交要存储为日期的值时:

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

其他提示

问题在于使用generic system.data.oledb提供商。 oracle特定system.data.oracleclient没有此问题。

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top