准備:
- PL/SQL Developer:我用的是plsqldev1005(32位)
- win32_11gR2_client:記住一定是32位的,因為PL/SQL Developer只認32位的
安裝成功后,需要配置環境變量:
TNS_ADMIN環境變量,類似於:C:\app\Lzj\product\11.2.0\client_1\network\admin。這個變量實際上是PL/SQL Developer尋找tnsnames.ora的依據。有了這個環境變量,PL/SQL Developer啟動是會自動發現連接配置。
NLS_LANG環境變量,值為:SIMPLIFIED CHINESE_CHINA.ZHS16GBK。這個值要與oracle服務器配置的一致,oracle服務器默認是:SIMPLIFIED CHINESE_CHINA.ZHS16GBK。
Path環境變量,將Oracle client的主目錄。類似於:C:\app\Lzj\product\11.2.0\client_1,進入path末尾。
1. 配置PL/SQL Developer
啟動時,登錄選擇取消,進入主界面。
選擇菜單:工具/首選項/連接,見下面界面。
主要設置:Oracle 主目錄名、OCI庫
Oracle 主目錄名:就是安裝的Oracle client的主目錄。類似於:C:\app\Lzj\product\11.2.0\client_1,我這里是我安裝客戶端時自定義目錄
OCI庫:Oracle Client的主目錄下ock.dll文件。類似於:C:\app\Lzj\product\11.2.0\client_1\oci.dll
這里,有個問題,就是你明明設置好了,但下次啟動,發現這兩個配置沒了。
我不明白的是,Oracle Client安裝成功后,兩個配置為何不會自動發現。畢竟不手動填寫是自動發現。
需要配置三個環境變量,如果已配置過,則不用配置:
TNS_ADMIN環境變量,類似於:C:\app\Lzj\product\11.2.0\client_1\network\admin。這個變量實際上是PL/SQL Developer尋找tnsnames.ora的依據。有了這個環境變量,PL/SQL Developer啟動是會自動發現連接配置。
NLS_LANG環境變量,值為:SIMPLIFIED CHINESE_CHINA.ZHS16GBK。這個值要與oracle服務器配置的一致,oracle服務器默認是:SIMPLIFIED CHINESE_CHINA.ZHS16GBK。
Path環境變量,將Oracle client的主目錄。類似於:C:\app\Lzj\product\11.2.0\client_1,進入path末尾。
還需注意:
Oracle Client安裝成功后,注冊表里的值。
HKEY_LOCAL_MACHINE\SOFTWARE\ORACLE\KEY_OraClient11g_home1,下ORACLE_HOME,值為:E:\instantclient_11_2\。這是我的自定義配額制連接Oracle Client路徑。如果Oracle Client是默認安裝,則類似於:C:\app\Lzj\product\11.2.0\client_1。這個就是Oracle Client主目錄。可能沒有KEY_OraClient11g_home1,我這個是在本機安裝了Oracle數據庫,如果沒有則是只安裝了Oracle Client。
2. 編輯tnsnames.ora文件
這里要說明的是tnsnames.ora的位置,網上說的不一致。主要取決於TNS_ADMIN環境變量。我這里配置成:E:\instantclient_11_2\network\admin。
在tnsnames.ora文件所在位置的同一路徑下,還需要:listener.ora、sqlnet.ora文件。
我把oracle服務器自動生成的三個文件內容列在下面:
listener.ora
# listener.ora Network Configuration File: E:\instantclient_11_2\network\admin\listener.ora # Generated by Oracle configuration tools. LISTENER = (DESCRIPTION_LIST = (DESCRIPTION = (ADDRESS = (PROTOCOL = IPC)(KEY = EXTPROC1521)) (ADDRESS = (PROTOCOL = TCP)(HOST = localhost)(PORT = 1521)) ) ) ADR_BASE_LISTENER = E:\app
sqlnet.ora
# sqlnet.ora Network Configuration File: E:\instantclient_11_2\network\admin\sqlnet.ora # Generated by Oracle configuration tools. SQLNET.AUTHENTICATION_SERVICES= (NTS) NAMES.DIRECTORY_PATH= (TNSNAMES, EZCONNECT)
tnsnames.ora
# tnsnames.ora Network Configuration File: E:\instantclient_11_2\network\admin\tnsnames.ora # Generated by Oracle configuration tools. LISTENER_ORCL = (ADDRESS = (PROTOCOL = TCP)(HOST = localhost)(PORT = 1521)) ORCL = (DESCRIPTION = (ADDRESS = (PROTOCOL = TCP)(HOST = localhost)(PORT = 1521)) (CONNECT_DATA = (SERVER = DEDICATED) (SERVICE_NAME = orcl) ) )
可以在tnsnames.ora文件末尾加入自己的配置
xxxxx = (DESCRIPTION = (ADDRESS = (PROTOCOL = TCP)(HOST =xxxxx)(PORT = 1521)) (CONNECT_DATA = (SID = orcl) (SERVER = DEDICATED) ) )
這里有個誤區就是如果你的連接名(就是上面第一行的xxxxx),前面不能有任何字符,空格也不行。
否則PL/SQL Developer登錄時會報:ORA-12154: TNS: 無法解析指定的連接標識符