oracle Entity db.Database.SqlQuery ORA-01843: 无效的月份

 

原因是oracle的日期格式化格式和本地语言环境的日期格式不一致导致的。

一般情景为oralce格式为英文格式

本地服务器或者开发机的环境为中文环境。

使用Dbcontext 实例一般不会有问题。

但是使用db.Database.SqlQuery会引起这个错误。

解决办法

1.改变客户端机器语言环境,使其格式化日期格式跟oracle服务器的一样

 

2.在执行本来的sql之前,先执行一个设置语句

alter session set nls_date_language='american'

db.Database.ExecuteSqlCommand("alter session set nls_date_language = 'american'");

然后执行正常的语句即可。

 

posted @ 2017-01-03 12:09  coinci  阅读(391)  评论(0编辑  收藏  举报