[筆記]該死的ORA-12154
基本上應該是win32比較會發生…環境是winXP+apache2.0.59+php5/with oci8 enabled+oracle client 要連到遠端的oracle server。按照google大神的指示在php用PutEnv設了一堆環境變數, 始終躲不過這個ORA-12154: TNS無法解析指定的連線。檢查半天tnsnames.ora設定的很好呀? 那就是沒抓到這個檔了。最後在一個意外中發現PutEnv要寫成這樣:
PutEnv(“ORACLE_HOME=/c/oracle/ora92″);
而不是
PutEnv(“ORACLE_HOME=C:\oracle\ora92″);
並且NLS_LANG也要設定
PutEnv(“NLS_LANG=TRADITIONAL CHINESE_TAIWAN.ZHT16MSWIN950″);
否則繼12154 之後就會送你ORA-12705…
NLS_LANG的值得問你想連的那個資料庫,可以用client軟體連上db後, 下Query取得:
SELECT USERENV (‘language’) FROM DUAL;