案例:
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