上一篇寫如何免安裝Oracle來使用PL/SQL Developer,http://www.cnblogs.com/volnet/archive/2012/05/22/2513728.html
這一篇則需要在一台主機上同時支持.net程序,不論編譯成x86還是x64都要OK。
1、下載Oracle Data Access Components(ODAC) Xcopy的兩個版本:
x86:http://www.oracle.com/technetwork/database/windows/downloads/index-101290.html
x64:http://www.oracle.com/technetwork/database/windows/downloads/index-090165.html
2、閱讀里面的readme。
以其中一個為例,另一個操作步驟一致。
3、解壓到任意文件夾(臨時的,一會可以刪掉)
3.1 開始->運行->cmd->cd 該文件夾
3.2 運行命令 install.bat all {目標路徑:也就是最后要被安裝的目錄} odac
其他參數請參考readme。
3.3 將其加入到系統環境變量中:
PATH的值中增加:C:\Oracle\ODAC112030Xcopy_32bit;C:\Oracle\ODAC112030Xcopy_32bit\bin;C:\Oracle\ODAC112030Xcopy_x64;C:\Oracle\ODAC112030Xcopy_x64\bin;
該值以實際情況為准。
4、測試:
寫一個Console程序,程序需要引用Oracle.DataAccess.dll(且設置屬性-〉復制本地-〉True),路徑在:
D:\Oracle\ODAC112030Xcopy_32bit\odp.net\bin\4\Oracle.DataAccess.dll
或者
D:\Oracle\ODAC112030Xcopy_x64\odp.net\bin\4\Oracle.DataAccess.dll
編譯的時候,可以選該工程的編譯選項為x86/x64。
在
using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Configuration; // using System.Data.OracleClient; using Oracle.DataAccess.Client; namespace OracleTest { class Program { static void Main(string[] args) { using (OracleConnection conn = new OracleConnection(ConfigurationManager.AppSettings["OracleConnectionString"])) { try { conn.Open(); Console.WriteLine("Successful!\r\n"); } catch (Exception ex) { Console.WriteLine("ERROR " + ex.ToString() + "\r\n"); } finally { conn.Dispose(); } } Console.ReadKey(); } } }
5、使用XCopy的方式部署服務器
這里的服務器也可以指另外一台機子,假設現在是一台新安裝的Windows
將安裝完的文件復制到該機器的某個路徑下:
這里復制D:\Oracle\ODAC112030Xcopy_32bit和D:\Oracle\ODAC112030Xcopy_x64到服務器的C:\Oracle下(或者其他文件)。
新增路徑到系統環境變量PATH中,將本地編譯過的程序復制到服務器,不論是針對x86編譯的還是x64編譯的都可以正確運行。
6、PL/SQL Developer補充。
在上一篇文章http://www.cnblogs.com/volnet/archive/2012/05/22/2513728.html中我們通過Instant Client來設置PL/SQL的首選項。現在可以把它們去掉了。因為我們已經在環境變量中設置了路徑。因為PL/SQL只支持x86的OCI.DLL,所以,在設置環境路徑的時候,應該把32bit的相關路徑放在前面,這樣就可以正確運行了。
7、設置字符集,可以使用上一篇文章http://www.cnblogs.com/volnet/archive/2012/05/22/2513728.html的方法來設置字符集,也可以直接在安裝的install.bat中做一下修改,再進行安裝。
以下方法只適合直接install.bat的那台機子。
在上一篇文章中提到了在注冊表中修改,這里就能用到了,在D:\Oracle\ODAC112030Xcopy_32bit\bin路徑下查看oracle.key可以查到字符集放在這個位置:SOFTWARE\Wow6432Node\ORACLE\KEY_odac修改NLS_LANG為SIMPLIFIED CHINESE_CHINA.ZHS16GBK。
8、設置tnsnames.ora
如果不是用程序直接找的路徑,而是通過系統配置尋找tnsnames.ora的,則需要在對應的路徑下增加network\ADMIN\tnsnames.ora。步驟和上一篇文章http://www.cnblogs.com/volnet/archive/2012/05/22/2513728.html一致。
如這里PL/SQL需要使用tnsnames.ora,則需要在C:\Oracle\ODAC112030Xcopy_32bit路徑下建立network\ADMIN\tnsnames.ora,但是不需要在C:\Oracle\ODAC112030Xcopy_x64建。
9、另外,如果是IIS中布置的程序需要通過本地訪問Oracle,包括使用Oracle.DataAccess以及System.Data.OracleClient訪問,可能都需要重新啟動計算機后才可使用。

