背景:本地未安裝oracle數據庫服務器,希望遠程連接Oracle服務器
測試環境:win7 64位系統
1.下載精簡客戶端
下載64位windows的instantclient-basic包,地址:http://www.oracle.com/technetwork/topics/winx64soft-089540.html,32位的需下載32位的客戶端,將包解壓存放到本地,我本機主目錄是D:\software_dev\plsql\OracleClientPackage\instantclient_11_2
2.創建數據庫連接的配置文件
在客戶端主目錄下新建sqlnet.ora和tnsnames.ora兩個文件
sqlnet.ora文件寫入:
SQLNET.AUTHENTICATION_SERVICES= (NTS) NAMES.DIRECTORY_PATH= (TNSNAMES, EZCONNECT)
tnsnames.ora文件寫入:
#可配置多個本地實例。格式: #本地實例名 = # (DESCRIPTION = # (ADDRESS = (PROTOCOL = TCP)(HOST = 遠程數據庫IP地址)(PORT = 遠程服務器端口號)) # (CONNECT_DATA = # (SERVER = DEDICATED) # (SERVICE_NAME = 遠程數據庫服務名) # ) # ) KOBRA_DEV_VPN= (DESCRIPTION = (ADDRESS_LIST = (ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.8.109)(PORT = 1521)) ) (CONNECT_DATA = (SERVICE_NAME = comstar) ) ) KOBRA_DEV_VPN_2= (DESCRIPTION = (ADDRESS_LIST = (ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.8.139)(PORT = 1521)) ) (CONNECT_DATA = (SERVICE_NAME = kobra) ) )
PS:不要出現本地實例名前面多空格,或者其他地方少寫括號。否則連接時會報錯:ORA-12154: TNS:could not resolve the connect identifier specified
3. 配置windows的環境變量
變量名:TNS_ADMIN 變量值:D:\software_dev\plsql\OracleClientPackage\instantclient_11_2
---->截圖來自win10
PS:這里變量值即為instantclient在本地的主目錄。如果不配置該變量,連接時會報錯:ORA-12154: TNS:could not resolve the connect identifier specified
4.安裝並配置PL/SQL Developer
(1)下載安裝PL/SQL Developer工具
(2)配置oracle的連接參數:打開PL/SQL,打開工具-->首選項-->連接,配置Oralce主目錄和OCI庫

5.重新啟動PL/SQL Developer
填寫用戶名、密碼、選擇數據庫,確定連接

還可以用這種寫法進行測試:

5.解決亂碼問題
解決亂碼問題需要關注的三點:
(1)Oracle數據庫內部的字符集
(2)Oracle客戶端應用所在環境的字符集
(3)Oracle數據庫所在服務器的系統中NLS_LANG變量里保存的字符集(最好與前兩點保持一致)
解決方法:
步驟一:查詢Oracle數據庫所在服務器的系統中NLS_LANG變量里保存的字符集
方式一:
select * from v$nls_parameters;
查詢結果如下:

方式二:
select userenv('language') from dual;
查詢結果如下:

上述方式都可查得:方式當前oracle服務器內部的字符集為 AMERICAN_AMERICA.AL32UTF8
步驟二:配置環境變量
配置oracle客戶端所在環境的字符集,使其與oracle服務器內部字符集配置保持一致:
變量名:NLS_LANG 變量值:AMERICAN_AMERICA.AL32UTF8

步驟三:重啟PL/SQL,進行測試
參考文章:
http://www.cnblogs.com/zhwl/p/3727565.html 不安裝oracle客戶端,用plsql連接oracle
http://gang-chen.iteye.com/blog/2005546 PLSQL亂碼
