1) 当我们在一个中文环境的客户端使用如下sql语句INSERT INTO "temptable" ( DELIVER_DATE ) VALUES (TO_DATE('27-Jun-2007 15:57:30', 'DD-MON-YYYY HH24:MI:SS') )Runtime error occurred: 1843 (ORA-01843: 无效的月份)数据库会报告一个ORA-01843的错误,这是因为客户端是中文环境,格式mon就不能用英文的月份写法,必须用中文的"六…
ORA-01843: 无效的月份失败的 sql 为:XXXXXXXXXXXXXXXX 执行sql语句更改为美国语言后仍然失败, ALTER SESSION SET NLS_DATE_LANGUAGE='AMERICAN'; 结果是注册表的问题,优化后多余的语言被清理掉了,所以,要修复注册表 将下面的文件复制保存为注册表文件.reg双击导入注册表. windows server 2005 系统时区文件 Time Zones.reg的文件内容,适用于windows server 2008 r2 我是…
问题 引发ORA-01843:无效的月份. 解决 改动client会话日期的语言: ALTER SESSION SET nls_date_language='american';…
原因是oracle的日期格式化格式和本地语言环境的日期格式不一致导致的. 一般情景为oralce格式为英文格式 本地服务器或者开发机的环境为中文环境. 使用Dbcontext 实例一般不会有问题. 但是使用db.Database.SqlQuery会引起这个错误. 解决办法 1.改变客户端机器语言环境,使其格式化日期格式跟oracle服务器的一样 2.在执行本来的sql之前,先执行一个设置语句 alter session set nls_date_language='american' db.Da…
SQL语句里面,看看有没有字符串的,没加单引号. 后面经查,发现有字段对比时候,一个是字符串,一个是数值型,使用了ORACLE隐式转换,字符串里面有包含非数字型的,所以导致报错…
1.插入的日期如果是DateTime类型的,没有影响 2.如果DateTime.ToString()获取的日期,就会报错,例如(@param_datetime = cf.GetServerDateTime().ToString("yyyy-MM-dd HH:mm:ss");)所以需要转换格式 ',to_date(@param_datetime,'yyyy-mm-dd hh24:mi:ss'))…
类型不匹配,需要类型转换,函数:to_char()转换成字符,to_num()转换成数字…
1.插入的日期如果是DateTime类型的,没有影响 2.如果DateTime.ToString()获取的日期,就会报错,例如(@param_datetime = cf.GetServerDateTime().ToString("yyyy-MM-dd HH:mm:ss");)所以需要转换格式 ',to_date(@param_datetime,'yyyy-mm-dd hh24:mi:ss'))…
原因是:mybatis中的mapping映射时,sql语句中忘了加逗号,且逗号处有换行…