码迷,mamicode.com
首页 > 其他好文 > 详细

ORA-01843:无效的月份

时间:2014-06-08 14:40:51      阅读:238      评论:0      收藏:0      [点我收藏+]

标签:c   style   blog   a   http   ext   

        Oracle数据库默认情况下,会以DD-MON-YY的形式显示日期,其中DD是天数,MON是月份的前三个字母(大写),而YY是年份的最后两位。数据库实际上会为年份存储4位数字,但是默认情况下只会显示最后两位。


一个简单的语句:

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

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


PL/SQL Developer错误:

bubuko.com,布布扣

命令行:

bubuko.com,布布扣

       分析:通过命令行中日期的显示发现,日期的显示是以中文格式显示(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;






ORA-01843:无效的月份,布布扣,bubuko.com

ORA-01843:无效的月份

标签:c   style   blog   a   http   ext   

原文地址:http://blog.csdn.net/user_longling/article/details/28909289

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!