實驗環境:PL/SQLDeveloper 9.06(Window7 64bit下安裝)
RHEL 5.5 32bit(VMware下)
Oracle 10g R2.0.1.0(RHEL下)
其中,Windows 7模擬客戶端,Red Hat Linux模擬遠程服務器端。
1、 安裝InstantClient。
到官網下載Instant Client,下載10g 32位的,因爲PL/SQL Developer只有32位的。下載完解壓到隨意文件夾。本次實驗解壓到:D:\download\Oracle Tools\instantclient_10_2。下載地址:http://www.oracle.com/technetwork/cn/database/features/instant-client/index-092699-zhs.html。
2、 設置環境變量。
根據解壓路徑配置Windows環境變量PATH、TNS_ADMIN和NLS_LANG
u PATH中添加:D:\download\OracleTools\instantclient_10_2;
本次試驗中即使沒有添加此項,也能成功使用PL/SQL Developer連接遠程Oracle,但Oracle官方安裝Instant Client建議配置進去,所以這裏保留此配置。
u TNS_ADMIN中添加:D:\download\Oracle Tools\instantclient_10_2;
配置此環境變量,是爲了PL/SQL Developer找到tnsnames.ora文件,據說PL/SQL Developer會根據Oracle版本去相應路徑找tnsnames.ora。如爲10g,即在此環境變量配置的路徑下找“network\admin\tnsnames.ora”。
但是實驗中並沒有成功,需要配置到admin目錄下才行。
u NLS_LANG中添加:american_america.uft8
這個根據實際情況配置,中文環境:NLS_LANG=AMERICAN_AMERICA.ZHS16GBK。如果不配置,則在PL/SQL Developer中查詢等操作時會出現亂碼。
3、 配置客戶端TNS。
在Instance Client解壓目錄下(即:D:\download\Oracle Tools\instantclient_10_2)創建network文件夾,network下再創建admin文件夾,即:“D:\download\OracleTools\instantclient_10_2\network\admin”。把服務器端(即Linux下的Oracle)的tnsnames.ora文件複製到指定此文件夾下。
D:\download\Oracle Tools\instantclient_10_2目錄下最終有以下文件:
4、 解決兼容性問題(視需而設置,有些環境不需要以下設置)。
a) win+R → 輸入sysdm.cpl,點確定 → 高級 → 性能欄下“設置” → 數據執行保護,將PL/SQLDeveloper添加進去,後確定(需重啓)。
b) 將PL/SQL Developer的執行程序plsqldev.exe兼容性更改爲用Windows XP運行。
5、 關閉服務器端防火牆,開啓Oracle監聽,啓動數據庫。
關閉防火牆:# /sbin/iptables -F
啓動監聽:$ lsnrctl start
測試TNS名字是否可用:$ tnsping daocn_tns
6、 配置PL/SQL Developer的首選項。
無登陸狀態下打開PL/SQL Developer,設置首選項的兩個目錄位置,其中Oracle主目名此處設置爲“D:\download\OracleTools\instantclient_10_2”,OCI庫設置爲:“d:\download\oracletools\instantclient_10_2\oci.dll”,如下所示:
配置後,點確認,關閉PL/SQL Developer。
7、 經過以上步驟後,基本配置完畢,但前提是Windows端與VMware中的Linux可用ping通,此文不涉及此法。
8、 啓動PL/SQL Developer。
連接成功!查詢數據以測試:
由於上面環境變量NLS_LANG配置正確,所以此處可以正常顯示中文。順便說說,使用SQL Developer之所以不需配置NLS_LANG環境變量,也可以正常顯示中文,是因爲SQL Developer軟件本身無字符集,默認使用的是系統字符集(表達不知是否準確?)。
至此,本實驗完畢。