前言:
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裏面設置OCI Library和Oracle_Home,例如本機設置爲:
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 數據庫
注意:(2014-7-17)
如果使用上面的這種方法的話,那麼PLSQL讀取的配置文件也是instantclient_11_2目錄下的配置文件,比如我的配置文件路徑就是:
D:\app\oracle\product\11.2.0\instantclient_11_2\NETWORK\ADMIN
此時使用oracle server 64bit自帶的net configuration assistant以及net manager是沒有用的。不過可以在net configuration assistant當中配置,然後將配置好的配置文件覆蓋到\instantclient_11_2\目錄下
比如我可以將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,然後在配置上有一下注意點:
- oracle server 64bit配置監聽器listener和數據庫連接名testdb
- oracle_client_32bit不要配置監聽器,只配置數據庫連接名testdb
然後安裝plsql,連接testdb,正常連接。
第二種情況解決方法
安裝oracle_client_32bit,創建數據庫連接,安裝plsql developer,這樣就能夠正常連接。
TNS_ADMIN的設定
這個環境變量是用來設定到底使用那個tns配置文件的。因爲我們在一臺機器上面安裝oracle server 64bit和oracle client 32bit,那麼就會有兩個tns的配置文件,兩個配置文件放在一下目錄:
- D:\app\oracle\product\11.2.0\dbhome_1\NETWORK\ADMIN
- 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,那麼上面的路徑會發生改變。