加载中…
个人资料
  • 博客等级:
  • 博客积分:
  • 博客访问:
  • 关注人气:
  • 获赠金笔:0支
  • 赠出金笔:0支
  • 荣誉徽章:
正文 字体大小:

Oracle错误:ORA-01843:无效月份的问题

(2013-08-18 16:33:41)
标签:

oracle

to_date

ora-01843

it

分类: SQL
在创建了表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);
问题搞定

0

阅读 收藏 喜欢 打印举报/Report
  

新浪BLOG意见反馈留言板 欢迎批评指正

新浪简介 | About Sina | 广告服务 | 联系我们 | 招聘信息 | 网站律师 | SINA English | 产品答疑

新浪公司 版权所有