我是靠谱客的博主 安静战斗机,最近开发中收集的这篇文章主要介绍Oracle错误:ORA-01843:无效月份的问题,觉得挺不错的,现在分享给大家,希望可以做个参考。

概述

在创建了表EMP如下后:
CREATE TABLE EMP
(EMPNO NUMBER(4) NOT NULL,
  ENAME VARCHAR2(10),
  JOB VARCHAR2(9),
  MGR NUMBER(4),
  HIREDATE DATE,
  SAL NUMBER(7, 2),
  COMM NUMBER(7, 2),
  DEPTNO NUMBER(2)
);
再插入下面的一条数据后报错:ORA-01843: 无效的月份
INSERT INTO EMP VALUES (7369,'SMITH','CLERK',7902,
TO_DATE('17-DEC-1980', 'DD-MON-YYYY'),800,NULL, 20);

原因是这个TO_DATE的Format中的“MON”格式出现异常,但是这个格式完全符合Oracle的格式要求。
再查看nls_date_language参数,发现这个参数值为NULL
SELECT * FROM v$parameter WHERE name = 'nls_date_language';

因为是中文的环境,因此需要把这个参数改成AMERICAN
ALTER SESSION SET NLS_DATE_LANGUAGE='AMERICAN';

再次执行
INSERT INTO EMP VALUES (7369,'SMITH','CLERK',7902,
TO_DATE('17-DEC-1980', 'DD-MON-YYYY'),800,NULL, 20);
问题搞定

最后

以上就是安静战斗机为你收集整理的Oracle错误:ORA-01843:无效月份的问题的全部内容,希望文章能够帮你解决Oracle错误:ORA-01843:无效月份的问题所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(59)

评论列表共有 0 条评论

立即
投稿
返回
顶部