1. 程式人生 > >Oracle錯誤:ORA-01843:無效月份的問題

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);
問題搞定