ORA-01843:无效的月份

2014-11-24 17:18:17 · 作者: · 浏览: 0

一个简单的语句:


SELECT TO_DATE('21-MAY-2014') FROM dual;


引发ORA-01843:无效的月份!


PL/SQL Developer错误:



命令行:


ORA-01843:无效的月份


分析:通过命令行中日期的显示发现,日期的显示是以中文格式显示(Oracle知道我们客户端的环境为中文环境,所以转换为中文格式显示),而我们SQL语句所针对的环境是英文环境,到这里错误已经很明显啦。


解决之道(统一日期的语言):


统一中文: SELECT TO_DATE('21-5月-2014') FROM dual;


统一英文:


1、修改客户端会话日期的语言: ALTER SESSION SET nls_date_language='american';


2、成功执行: SELECT TO_DATE('21-MAY-2014') FROM dual;