ORA-01843 月份无效


ORA-01843 月份无效

  ORACLE中对表数据进行操作,当表字段数据类型为DATE时,报“月份无效”错误,这是由于当前会话的语言环境与你进行数据操作的SQL语句中DATE型字段的显示格式不匹配。比如:
操作语句:

INSERT INTO grade VALUES   
                  (TO_DATE('11-FEB-2007 00:00:00','DD-MON-YYYY HH24:MI:SS'));  

可以注意到要插入的数据中 月份 的格式为英文的 ‘FEB’, 此时可以输入
    SELECT USERENV('Lang') FROM DUAL;
来查看当前会话的语言环境(缩写),如果返回为 ZHS ,即为中文环境,此时月份格式如果为英文刚会报错,
因此可以尝试以下方法:

  • 语言环境为中文时,直接将月份格式改成中文的’10月’;

  • 通过命令行语句 ALTER SESSION NLS_LANGUAGE=american将此对话窗口(会话)的语言环境变更为英文环境,即可在此窗口中执行。

  • 注意:上面的更改会话语言环境只针对当前会话窗口,你在当前会话窗口执行完此语句后,再去其他会话窗口执行表操作语句的话,更改实际上并未奏效,仍然会报错,因此 ALTER 更改会话语言环境与执行含有月份的操作语句必须在同一会话中。

posted @ 2022-06-13 00:23  ROGER_FEDERER  阅读(298)  评论(0编辑  收藏  举报  来源