首页 > 代码库 > ORA-01843:无效的月份
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;
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。