ORACLE DB 的學習者們

2017年6月7日 星期三

TO_DATE ORA-01843:not a valid month 錯誤處理

例如,在筆電上,執行

select to_date('25-DEC-2010') from dual;

ORA-01843: 不是有效的月份

這個問題的本質是系統不能識別英文的月簡寫,而能識別中文。

Oracle系統的語言配置主要保存在V$NLS_PARAMETERS數據字典視圖中。查詢該視圖關於語言的設置值。如下:

SQL> select * from v$nls_parameters where parameter like '%DATE%';

SQL> alter session set nls_date_language='american';

Session altered

修改後,參數的日期的語言設定更改如下:

然後,再執行

select to_date('25-DEC-2010') from dual;

結果就正常了