重庆思庄Oracle、Redhat认证学习论坛

标题: ORA-01843:无效的月份 [打印本页]

作者: 刘泽宇    时间: 2021-1-8 16:28
标题: ORA-01843:无效的月份
在执行这个语句时出现了报错:select TO_DATE('01-JAN-2021', 'DD-MON-YYYY') from dual;

第 1 行出现错误:
ORA-01843: 无效的月份


查看时间格式:
SQL>  show parameter nls_date_format

NAME                                 TYPE                   VALUE
------------------------------------ ---------------------- ------------------------------
nls_date_format                      string                 DD-MON-RR

是默认的格式
发现语言是中文
SQL> show parameter nls_date_language

NAME                                 TYPE                   VALUE
------------------------------------ ---------------------- ------------------------------
nls_date_language                    string                 SIMPLIFIED CHINESE


这这种情况下,无法识别英语的JAN,因此解决方法如下:
1.将语句中的时间字段改为中文格式:
SQL> select TO_DATE('01-1月-2021', 'DD-MON-YYYY') from dual;

TO_DATE('01-1
--------------
01-1月 -21

2.将nls_date_language设置为英语:
ALTER SESSION SET nls_date_language = 'AMERICAN';
SQL> select TO_DATE('01-JAN-2021', 'DD-MON-YYYY') from dual;

TO_DATE('01-
------------
01-JAN-21






欢迎光临 重庆思庄Oracle、Redhat认证学习论坛 (http://bbs.cqsztech.com/) Powered by Discuz! X3.2