首页 / 数据库 / MySQL / ORA-01843:无效的月份
Oracle数据库默认情况下,会以DD-MON-YY的形式显示日期,其中DD是天数,MON是月份的前三个字母(大写),而YY是年份的最后两位。数据库实际上会为年份存储4位数字,但是默认情况下只会显示最后两位。一个简单的语句:SELECT TO_DATE("21-MAY-2014") FROM dual;引发ORA-01843:无效的月份!PL/SQL Developer错误:命令行:分析:通过命令行中日期的显示发现,日期的显示是以中文格式显示(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;Oracle教程:实例故障恢复 http://www.linuxidc.com/Linux/2011-08/40857.htmLinux-6-64下安装Oracle 12C笔记 http://www.linuxidc.com/Linux/2013-07/86805.htm在CentOS 6.4下安装Oracle 11gR2(x64) http://www.linuxidc.com/Linux/2014-02/97374.htmOracle 11gR2 在VMWare虚拟机中安装步骤 http://www.linuxidc.com/Linux/2013-09/89579p2.htmDebian 下 安装 Oracle 11g XE R2 http://www.linuxidc.com/Linux/2014-03/98881.htm更多Oracle相关信息见Oracle 专题页面 http://www.linuxidc.com/topicnews.aspx?tid=12本文永久更新链接地址