上一篇写如何免安装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访问,可能都需要重新启动计算机后才可使用。