ORA-01843:無效的月份


        Oracle數據庫默認情況下。會以DD-MON-YY的形式顯示日期。當中DD是天數,MON是月份的前三個字母(大寫)。而YY是年份的最后兩位。數據庫實際上會為年份存儲4位數字,可是默認情況下僅僅會顯示最后兩位。


一個簡單的語句:

       SELECT TO_DATE('21-MAY-2014') FROM dual;

引發ORA-01843:無效的月份。


PL/SQL Developer錯誤:


命令行:


       分析:通過命令行中日期的顯示發現。日期的顯示是以中文格式顯示(Oracle知道我們client的環境為中文環境,所以轉換為中文格式顯示),而我們SQL語句所針對的環境是英文環境。到這里錯誤已經非常明顯啦。


解決之道(統一日期的語言):

統一中文: SELECT TO_DATE('21-5月-2014') FROM dual;

統一英文:

1、改動client會話日期的語言: ALTER SESSION SET nls_date_language='american';

2、成功運行: SELECT TO_DATE('21-MAY-2014') FROM dual;







免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM