Oracle用戶端挺招人煩的,部署串連它的應用通常需要先安裝它的用戶端,安裝程式要求在目標機器上寫註冊表,假設你沒有潔癖的話,你仍可能被下面的事情絆住:當你的機器上的其他程式依賴於x64的Oracle的程式,並且它們很有可能根本不是你寫的,因此你還不敢隨便亂動伺服器,但是你可能需要一個PL/SQL用來在相同的環境下執行查詢,這個時候你還是需要一個免安裝的辦法來處理這個問題。
1、下載Oracle Instant Client (32-bit)
因為我的PL/SQL只支援32位的Oracle,所以必須下載對應的32位的才可以。
只需要下載instantclient-basic-nt-11.2.0.3.0.zip就可以了,其它的都是一些根據不同需要擴充的包。
:http://www.oracle.com/technetwork/topics/winsoft-085727.html
2、解壓到目標機器上(假設是台全新安裝的Windows就可以)
在這裡我選擇了該檔案夾:C:\instantclient_11_2_x86\
3、配置tnsnames.ora
用記事本建立tnsnames.ora檔案儲存在該路徑下:
C:\instantclient_11_2_x86\NETWORK\ADMIN\tnsnames.ora
內容參考下面的進行配置:
MY_XXXServer =
(DESCRIPTION =
(ADDRESS = (PROTOCOL = TCP)(HOST = 10.199.200.102)(PORT = 1521))
(CONNECT_DATA =
(SID = oravm)
(SERVER = DEDICATED)
)
)
4、解壓PL/SQL到目標機器上,如:C:\Program Files (x86)\PLSQL Developer 9.0.0.1601\
5、開啟PL/SQL,登入的時候,“取消”即可。
進入“喜好設定”(工具-〉喜好設定),左側選擇Oracle,右側填寫“Oracle主目錄名”以及OCI庫地址即可:
6、完成以上步驟,重新開啟PLSQL,輸入使用者名稱密碼,選擇正確的資料庫即可。
7、中文亂碼問題
7.1 方法1:設定環境變數(全域,可能對其它Oracle用戶端產生影響)
“電腦”->“系統屬性”->“進階系統設定”->“系統屬性/進階 選項卡”->“環境變數”->“系統變數”->“建立”->
變數名:NLS_LANG
變數值:SIMPLIFIED CHINESE_CHINA.ZHS16GBK
7.2 方法2:設定註冊表(不適用於Instant Client或其他XCopy用戶端)(全域,可能對其它Oracle用戶端產生影響)
[HKEY_LOCAL_MACHINE\SOFTWARE\ORACLE\KEY_XE]
"NLS_LANG"="SIMPLIFIED CHINESE_CHINA.ZHS16GBK"
其中KEY_XE可能和不同的Oracle安裝包不同,根據自己情況進行調整。
7.3 方法3:在啟動PLSQL前設定(獨立,不會對其它Oracle用戶端產生影響)
7.3.1 在PLSQL安裝資料夾下,建立bat檔案,內容如下:
set nls_lang=SIMPLIFIED CHINESE_CHINA.ZHS16GBK
plsqldev.exe
其中plsqldev.exe為PLSQL運行檔案。執行該bat後,會自動開啟plsql developer,輸入使用者名稱密碼,中文亂碼問題通常就得到解決。但是直接執行這個bat檔案會導致會有個黑色的命令列視窗,寫一個vbscript檔案plsqldev.vbs在安裝目錄下,內容如下:
createobject("wscript.shell").run "SetChineseCharset.bat",0
以後運行plsqldev.vbs即可(可以右鍵發送捷徑到案頭,並且修改表徵圖為http://files.cnblogs.com/volnet/plsqldev.ico)
7.3.2 為了消除黑色的命令列視窗,也可以直接寫下面這樣的bat檔案:
set nls_lang=SIMPLIFIED CHINESE_CHINA.ZHS16GBK
start plsqldev.exe
這樣就不會出現黑色的命令列視窗了。同樣修改表徵圖的方法同上。
關於自己寫的應用程式如何使用免安裝的方式部署,我也在研究中,這個連結值得參考:http://www.oracle.com/technetwork/issue-archive/2008/08-nov/o68odpnet-101744.html
關於最後研究的結果,請參考:http://www.cnblogs.com/volnet/archive/2012/05/22/2513968.html,其中也對PL/SQL Developer的安裝做了更新。