論不作死就不會死的過程,樓主之前因為得了一個oralce9i的精簡版的客戶端安裝包,我也分享過給其他人使用這個安裝包,沒聽人反饋過說有問題,所以這次換了電腦后果斷就安裝這個客戶端。然后問題就來了。
反復重新安裝了2次oracle客戶端,plsql連接是正常了,但是在查詢條件中帶有中文時就會報錯ora-00911。百度了很久之后解決。記錄一下。
首先你要查找一下你oracle數據庫服務器的的編碼格式,用下面的語句:
select * from nls_database_parameters;
重要的內容是 NLS_LANGUAGE, NLS_TERRITORY 和 NLS_CHARACTERSET 這三個字段,因為后續配置環境變量要用到。
2.配置環境變量。計算機-屬性-高級系統設置-高級-環境變量
新建2個環境變量,如下:
NLS_LANG = AMERICAN_AMERICA.AL32UTF8
LANG = zh_CN.UTF-8
其中NLS_LANG的構成是根據上面數據庫查詢得來的,具體構成的方法是 NLS_LANGUAGE+“_”+NLS_TERRITORY+"."+NLS_CHARACTERSET
3.我另外還更改了注冊表里面的NLS_LANG,路徑是:HKEY-LOCAL-MACHINE=>SOFTWARE=>Wow6432Node=>ORACLE如圖,我看資料好像應該不用改也可以,可以去試一下,不過我反正已經改了,就不打算再去折騰了。