环境:64bit win 7旗舰版 sp1补丁
win64 oracle11g ---- win64_11gR1_database_1013.zip
1、安装过程中出现的一个问题:即系统自检提升系统环境不符合要求
解决办法:
首先找到路径:
"E:/Oracle Enterprise_Standard Edition_11.1.0.6/database/stage/prereq/db/refhost.xml“。
在找到”refhost.xml“文件后,如果你没有安装XML软件,就以记事本的方式打开该文件,在打开之后我们找到如下节点:
{
<!--Microsoft Windows Vista-->
<OPERATING_SYSTEM>
<VERSION VALUE="6.0"/>
}
把上述节点替换为以下节点:
{
<!--Microsoft Windows 7-->
<OPERATING_SYSTEM>
<VERSION VALUE="6.1"/>
</OPERATING_SYSTEM>
}
2、安装完成后的访问问题, PLSQL无法访问本机64位Oracle
问题描述:无法找到oci.dll错误
问题原因:Oracle是64位的,oci.dll自然也是,而PLSQL_Developer是32位的,无法加载64位的DLL。
解决方法:
- 1. 下载32位Oracle InstantClient,并展开到某目录,例如D:/oracleclient/instantclient_11_2;
- 2. 将系统的tnsnames.ora拷贝到该目录下;
- 3. 在PLSQL Developer中设置Oracle_Home和OCI Library,如下图所示:
- 4. 在PLSQL Developer目录下编辑如下bat文件,替换其快捷方式,启动PLSQL Developer:
@echo off
set path=C:/oracle/instantclient_10_2
set ORACLE_HOME=C:/oracle/instantclient_10_2
set TNS_ADMIN=C:/oracle/instantclient_10_2s
set NLS_LANG=AMERICAN_AMERICA.ZHS16GBK
start plsqldev.exe
3、在进行后续的asp.net开发时,在进行数据库访问时,发生错误。
为了发布时调用部分32位的DLL,在IIS 应用进程池中配置-常规-启用32位应用程序-True
错误描述:"尝试加载 Oracle 客户端库时引发 BadImageFormatException。如果在安装 32 位 Oracle 客户端组件的情况下以 64 位模式运行,将出现此问题。"
解决方法如下:
实际上,System.Data.OracleClient所指向的是PATH环境变量下的oci.dll。因此,我们只要让程序能够找到64位的oci.dll就可以了。方法如下:
1. 下载instantclient-basic-win-x86-64-11.1.0.6.0.zip,并解压,如C:/instantclient-basic-win-x86-64-11.1。
2. 在系统的环境变量PATH中加入以上路径。
之后重启操作系统,程序会依照PATH路径寻找oci.dll,如果遇到32位的oci.dll会自动略过,找到64位的oci.dll就能连接上数据库了。