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 更改会话语言环境与执行含有月份的操作语句必须在同一会话中。