? ? ? ? Oracle數據庫默認情況下,會以DD-MON-YY的形式顯示日期,其中DD是天數,MON是月份的前三個字母(大寫),而YY是年份的最后兩位。數據庫實際上會為年份存儲4位數字,但是默認情況下只會顯示最后兩位。
?
一個簡單的語句:
? ? ? ?SELECT TO_DATE('21-MAY-2014') FROM dual;
引發ORA-01843:無效的月份!
?
PL/SQL Developer錯誤:
命令行:
? ? ? ?分析:通過命令行中日期的顯示發現,日期的顯示是以中文格式顯示(Oracle知道我們客戶端的環境為中文環境,所以轉換為中文格式顯示),而我們SQL語句所針對的環境是英文環境,到這里錯誤已經很明顯啦。
?
解決之道(統一日期的語言):
統一中文: SELECT TO_DATE('21-5月-2014') FROM dual;
統一英文:
1、修改客戶端會話日期的語言:?ALTER SESSION SET nls_date_language='american';
2、成功執行: SELECT TO_DATE('21-MAY-2014') FROM dual;
?
?
個人博客:學習園
原文連接:http://www.xuexiyuan.cn/article/detail/191.html
?
?
?
?
?