在測試由EDB建立連線到Oracle資料庫的Database Link時,以底下語法中oci的方式建立一個DB link,

CREATE [ PUBLIC ] DATABASE LINK name
  CONNECT TO username IDENTIFIED BY ‘password
  USING { libpq ‘host=hostname port=portnum dbname=database’ |
    [ oci ] ‘//hostname[:portnum]/database’ }

結果要連線到Oracle的資料庫時,出現了底下錯誤:
Error while trying to retrieve text for error ORA-12705

可是,明明也安裝了Oracle,並且在postgresql.conf裡設定了ORACLE_HOME參數值,
也將作業系統帳號enterprisedb加入了dba群組,使它可以存取$ORACLE_HOME/lib裡的檔案。

---------

 查了Oracle的錯誤代號說明,
ORA-12705: "invalid or unknown NLS parameter value specified" 
Cause: There are two possible causes:
           - An attempt was made to issue an ALTER SESSION statement with an invalid NLS parameter or value.
           - The NLS_LANG environment variable contains an invalid language, territory, or character set.

網路上大部份的解決方式,都是說將系統的NLS_LANG設定移除,但是我在Linux上根本沒有設定這個環境變數值。

---------

後來,將Oracle資料庫重新建立,字元集由AL32UTF8.AL16UTF16改成AL32UTF8.UTF8,
還是一樣的錯誤。


原來,
要在執行EDB程序的帳號(通常也就是enterprisedb)的.bash_profile裡面,
設定好ORACLE_HOME,並且在PATH中加上$ORACLE_HOME/lib目錄,裡面有OCI所需之library。

arrow
arrow
    全站熱搜

    來自大海的心 發表在 痞客邦 留言(0) 人氣()