ORACLE 無效的月份問題

2022-03-10 14:52:53 字數 839 閱讀 7400

這個問題是我曾經在使用中遇到的,在網上搜了一下,發現很多人都遇到過,並且也說明了很多解決方法。引起這個問題是有很多種可能的,現在我將在網上收集的資料結合我自己的解決經驗總結一下,希望對大家有幫助。

我用的是oracle10.2

問題的出現牽涉到乙個字符集的概念,先做個簡要介紹,深入的知識就自己google吧

影響oracle資料庫字符集最重要的引數是nls_lang引數。它的格式如下:

nls_lang = language_territory.charset

它有三個組成部分(語言、地域和字符集),每個成分控制了nls子集的特性。其中:

language 指定客戶端訊息的語言,territory 指定客戶端的日期和數字格式,charset 指定字符集。如:american _ america. zhs16gbk

檢視客戶端字符集引數:select * from nls_session_parameters;

在網上介紹的很多方法只能適用一次,再次登入資料庫後,又需要修改。

在windows下直接修改登錄檔可達到一勞永逸的效果:(建議修改前請關閉資料庫)

regedit.exe--hkey_local_machine\software\oracle\home0\nls_language

如果是預設安裝oracle的話,nls_language這一項的值應該是simplified chinese_china.zhs16gbk(屬於中文環境)

雙擊修改其值為:american_ america.zhs16gbk (英文環境)

重啟資料庫問題解決。

注:us7ascii是zhs16gbk的子集,至於選擇哪個字符集,依據自身需要。

**:

ORA 01843 無效的月份

今天開發ssh專案,遇到 ora 01843 無效的月份 這個問題。起初還有一系列問題,最後經過排查,確認是這個問題導致插入資料庫失敗。網上找了一些文章,無法解決。最後仔細檢查欄位的時候發現用myeclipse生成的類檔案欄位和資料庫中字段不一樣 資料庫中字段類是timestamp,但通過myecl...

ORA 01843 無效的月份

在plsql developer中執行select months between 29 mar 2008 28 feb 2008 from dual報錯。sql select months between 29 mar 2008 28 feb 2008 from dual select months...

Oracle中分號提示無效字元的問題

我們平時在寫sql語句時,一般都會在結尾加上分號來執行,但在某些情況下可能會導致invalid character的問題 首先檢查sql語句中是否有中文字元的問題,確保自己寫的sql語句正確 在oracle中,分號 和 都是執行的含義,如果使用了 就不需要使用分號了 注 如果是執行儲存過程則必須使用...