64位主机64位oracle下装32位客户端ODAC(NFPACS版) by dd
1、下载Oracle Data Access Components(ODAC) Xcopy的两个版本:
x86:(我们用到的是这个ODAC1120320Xcopy_32bit)http://www.oracle.com/technetwork/database/windows/downloads/index-101290.html
x64:http://www.oracle.com/technetwork/database/windows/downloads/index-090165.html
2、解压到任意文件夹(临时的,一会可以删掉)
2.1 开始->运行->cmd->cd 该文件夹(建议打开cmd直接到cmd.exe目录下以管理员身份运行)
2.2 运行命令 install.bat all {目标路径:也就是最后要被安装的目录} odac
例如:install.bat all c:OracleODAC1120320Xcopy_32bit odac 回车
3 将其加入到系统环境变量中:(记得要跟实际路径要完全一样)
PATH的值中增加:C:OracleODAC1120320Xcopy_32bit;C:OracleODAC1120320Xcopy_32bitin;
该值以实际情况为准。
4.设置tnsnames.ora
安装odac之后就意味着32位的程序通过它去连接oracle,而不是安装oracl自带的客户端,所以这时需要在对应的路径下增加networkADMIN nsnames.ora。具体是在ODAC1120320Xcopy_32bit目录下加networkADMIN nsnames.ora和networkADMINsqlnet.ora(sqlnet.net最好加上,无影响)
5.设置字符集。
因为web需要通过该odac连接数据库,此时客户端的字符集不是原来注册表software下的,但是这个客户端的字符集不一定能与数据库服务端的字符一致。直接在高级,环境变量加个字符集就可以解决了。此步骤对步骤6的web和步骤7的PLSQL可用,如果web不行就重启IIS或服务器。
6.IIS中布置的程序需要通过本地访问Oracle,包括使用Oracle.DataAccess以及System.Data.OracleClient访问,可能都需要在运行里运行“IISRESET”重启IIS 或者重新启动计算机后才可使用。
7.设置web.config 连接驱动,打开Web.config——<!--PACS数据库--> —— name="PACSConnectionString" connectionString="——Provider=MSDAORA.1;
确定Provider=MSDAORA.1,这种情况适合字符集为US7ASCII。
8.由于在本机安装了64位的Oracle,结果试图使用PLSQL Developer去访问它的时候,报告说无法加载oci.dll文件。在以上基础上可以解决这个问题。
在工具->首选项->里面设置Oracle_Home和OCI Library,例如本机设置为:
Oracle Home :C:OracleODAC1120320Xcopy_32bit
OCI Library :C:OracleODAC1120320Xcopy_32bitoci.dll
关于可能遇到的几个问题:
第一个:未在本地计算机上注册“OraleDb.Oracle”提供程序。
网上查了好几种方法,大概如下
1.针对目录给everyone,asp.net 或network service账户添加最大权限。
2.Regsvr32 OraOLEDB11.dll (注册如下)
在安装odac 32位时以上我试了都没用,可以试下这样做:
1.先卸载掉,再重装一次。
2.确保环境变量的路径跟所安装的目录一致。
第二个:为了防止程序不兼容64位系统,将程序池设置我启用32位。依次点击:“角色”—“Internet信息服务(IIS)管理器”—“应用程序池”—“PACSWEB”—右边“高级设置”—“启用32位应用程序:True”确定。