前言:
PLSQL Developer 無法連接 Oracle server64bit 分爲兩種情況:
第一種情況是:在 Oracle server 64bit 的數據庫服務器上安裝 PLSQL ;
第二種情況是:在另外的機器上安裝 PLSQL Developer 連接 Oracle server 64bit數據庫服務器。
錯誤症狀:
Initialization error
SQL*Net not properly installed
OracleHomeKey:
OracleHomeDir:
原因:
Oracle client是64位的,而plsql是32位的,兩者不兼容。
第一種情況解決辦法1:
下載跟Oracle服務器同版本的instantclient,然後配置 PLSQL,在 Perference --> Connection 裏面設置 Oracle_Home 和 OCI Library,例如本機設置爲:
Oracle Home : D:\app\oracle\product\11.2.0\instantclient_11_2
OCI Library : D:\app\oracle\product\11.2.0\instantclient_11_2\oci.dll
像其他 Navicat 連接 Oracle server 64bit 也需要現在這個instantclient,然後指定oci.dll。可以參考博客:Navicat Premium 連接 Oracle 數據庫。
PS:
如果使用上面的這種方法的話,那麼PLSQL讀取的配置文件也是instantclient_11_2目錄下的配置文件,比如我的配置文件路徑就是:
D:\app\oracle\product\11.2.0\instantclient_11_2\NETWORK\ADMIN 我們就要將
D:\app\oracle\product\11.2.0\dbhome_1\NETWORK\ADMIN 當中的三個配置文件(listener.ora、sqlnet.ora、tnsnames.ora)覆蓋到
D:\app\oracle\product\11.2.0\instantclient_11_2\NETWORK\ADMIN 當中。
第一種情況解決辦法2:
在安裝 oracle server 64bit 以後,再安裝oracle_client_32bit,然後在配置上有一下注意點:
1、oracle server 64bit 配置監聽器 listener 和數據庫連接名 testdb;
2、oracle_client_32bit 不要配置監聽器,只配置數據庫連接名 testdb;
3、然後安裝 plsql,連接testdb,正常連接。
第二種情況解決辦法:
安裝 oracle_client_32bit,創建數據庫連接,安裝
PLSQL Developer,這樣就能夠正常連接。
TNS_ADMIN 的設定:
這個環境變量是用來設定到底使用那個tns配置文件的。因爲我們在一臺機器上面安裝 oracle server 64bit 和 oracle client 32bit,那麼就會有兩個 tns 的配置文件,兩個配置文件放在一下目錄:
1、D:\app\oracle\product\11.2.0\dbhome_1\NETWORK\ADMIN
2、D:\app\oracle\product\11.2.0\client_1\NETWORK\ADMIN
如果不設定 TNS_ADMIN,那麼默認使用 client_1 的 tns
如果設定環境 TNS_ADMIN=D:\app\oracle\product\11.2.0\dbhome_1\NETWORK\ADMIN,那麼上面的路徑會發生改變。