ORA-01843:无效的月份

案例:

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)

);

 

INSERT INTO EMP VALUES (7369, 'SMITH',  'CLERK',     7902,

TO_DATE('17-DEC-1980', 'DD-MON-YYYY'),  800, NULL, 20);

---报错,无效的月份

字符集环境:

SELECT USERENV('language') FROM dual; 

 --SIMPLIFIED CHINESE_CHINA.ZHS16GBK

因为oracle服务器的字符集环境为中文环境,格式mon就不能用英文的写法

必须用中文的‘六月‘,换句话说要转化的字符串必须符合下面sql的查询结果

SELECT to_char(SYSDATE,'mon') FROM dual;

如果不想修改sql语句运行的话,需要在执行语句之前,使用alter session set nls_date+language='ameracan';

即可


来源:http://www.cnblogs.com/rootq/archive/2009/05/16/1458090.html

你可能感兴趣的:(ORA-01843:无效的月份)