說明:本內容是工作用到的知識點整理,來自工作中和網絡。
代碼於Oracle9上測試。
環境不同
DB server相同
AP server相同
AP server上的DOTNET 版本相同——都是.NET 3.5SP1
建立相同的環境
客戶端不相同,我的計算機上裝的是10.2.0。AP server上裝的是9.2.0
再次測試
出現ORA-12705錯誤
關於ORA-12705
第一種解釋
ORA-12705語系設定錯誤
在regedit的\HKEY_LOCAL_MACHINE\SOFTWARE\ORACLE下找到NLS_LANG機碼予以刪除就可以work
出現ORA-12705的錯誤訊息,原因是NLS_LANG在regedit機碼值是NA
為語系的編碼,是我在自己的計算機上安裝了Oracle Client后又移除所遺留下來的.
因此只要在regedit的\HKEY_LOCAL_MACHINE\SOFTWARE\ORACLE下找到NLS_LANG機碼予以刪除就可以work
第二種解釋
在環境變量中加一項:NLS_LANG , 值:SIMPLIFIED CHINESE_CHINA.ZHS16GBK
100%解決你的問題
第三種解釋
Oracle Instant Client ORA-12705 錯誤
問題: 使用Oracle Instant Client 出現 ORA-12705: Cannot access NLS data files or invalid environment specified 錯誤。
如果是Windows平台,注冊表里 \HKEY_LOCAL_MACHINE\SOFTWARE\ORACLE 查找鍵 NLS_LANG,這個鍵由Oracle標准客戶端安裝創建, 值是 NA 。這個導致了 ORA-12705錯誤。解決方法就是改名 NLS_LANG。
Linux下 如果環境變量 NLS_LANG 值是NA 會引起 ORA-12705 錯誤,解決方法是刪除這個變量,如/home/oracle1/.profile中的
export NLS_LANG="SIMPLIFIED_CHINA.ZHS16GBK"
給注釋掉.
找出上述現象
修改NLS_LANG
改為AMERICAN_AMERICA.ZHT16BIG5,如下圖。
Oracle 9i設定
Oracle 10g設定
學習資料