Oracle 9.2下的“System.Exception: System.Data.OracleClient requires Oracle client software version 8.1.7 or greater”(转http://www.cnblogs.com/jeet/archive/2005/06/24/115150.html)

Coordinator
Nov 24, 2011 at 9:37 AM

今天在连接Oracle的时候碰到一个问题,我的机器装的是Oracle9.2客户端,当在asp.net应用中使用数据访问的组件(调用System.Data.OracleClient)时,程序报“System.Exception: System.Data.OracleClient requires Oracle client software version 8.1.7 or greater”的错误,无法创建OracleConnection,但在同一台机器上用winfom客户端又能够正常访问到数据库。更加奇怪的是,我把应用部署到一台安装了Oracle 8.17客户端的机器上时,却能够正常运行。
        找了半天 ,终于搞清楚了原因。原来当Oracle 9.2运行在NTFS的分区上时,对于某些非administrator组的用户,ORACLE_HOME 目录是不可见的,而在windows server 2003下asp.net应用使用的帐户是netword service,因此无法创建oracle连接,只要重设一下ORACLE_HOME目录的权限就可以了。步骤如下:
1、以管理员的用户登录;
2、找到ORACLE_HOME文件夹(我的是C:\oracle\ora92),点右键,选属性--安全,在组或用户栏中选“Authenticated Users”,在下面权限列表中把“读取和运行”的权限去掉,再按应用;重新选上“读取和运行”权限,点击应用;选权限框下面的“高级”按钮,确认“Authenticated Users”后面的应用于是“该文件夹、子文件夹及文件”,按确定把权限的更改应用于该文件夹;
3、重新启动计算机,让权限设置生效(请注意,这一步很重要);
4、登录后运行asp.net应用,正常取得Oracle数据库的数据。

Coordinator
Nov 24, 2011 at 9:41 AM

oracle客户端下载 http://www.oracle.com/technetwork/database/enterprise-edition/downloads/index.html

Coordinator
Nov 24, 2011 at 10:36 AM

解决"System.Data.OracleClient 需要 Oracle 客户端软件 8.1.7 或更高版本"

 在用VS2008+Oracle9做环境连接Oracle时候,在VS 开发服务器运行正常,但IIS服务器调试和部署会报错!

      IIS服务器报错:System.Data.OracleClient 需要 Oracle 客户端软件 8.1.7 或更高版本。

 

出错的原因:

1.虽然报的是需要安装客户端8.1.7及以上版本,实际是由于.NET账户没有访问Oracle\bin文件夹的权限

2.在 Windows Server 2003/2008 或Windows XP的 NTFS系统中提供了高级的访问安全性,FAT32系统也许没有这个问题。

 

解决办法如下:

我用Windows Server 2008 为例 Windows Server 2003 和Windows XP也是一样的

1.打开安装有Oracle客户端的电脑,在安装目录 C:\oracle\ora90\BIN 文件夹上右键-》安全选项卡-》点击  编辑---》添加。

2.点击“查找范围”,在下面显示的账户中选择“NTWORK SERVICE”  ----将“读取和执行”的权限都赋给他(如果不行就把完全控制给他,这样不安全),子文件夹继承此权限,确定。

3.打开“服务器管理器”-》配置-》 本地用户和组-》组-》adminisgrators-》将Network Service 添加进来

4.重新启动IIS,或在“运行”中输入“IISRESET”。

  

运行下IIS中的网页吧,看,已经好了!

Coordinator
Nov 24, 2011 at 10:45 AM

首先,在安装Oracle服务器的机器上搜索下列文件,
oci.dll
ocijdbc10.dll
ociw32.dll
orannzsbb10.dll
oraocci10.dll
oraociei10.dll
sqlnet.ora
tnsnames.ora
classes12.jar
ojdbc14.jar
制作成压缩文件,配置目标计算机使用。

1.将oracleinstantclient.rar解压缩到一个目录, 如d:\oracleinstantclient 2.配置d:\oracleinstantclient的tnsnames.ora文件,只需要修改其中的服务器地址、服务名称和端口。  3、配置环境变量,在PATH变量中加入d:\oracleinstantclient 4、注册表加入下面键值      [HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\session Manager\Environment] "LD_LIBRARY_PATH"="d:\OracleInstantClient" "NLS_LANG"="AMERICAN_AMERICA.ZHS16GBK" "TNS_ADMIN"="d:\OracleInstantClient" 5、假如是asp.net应用,则要为ASPNET用户分配d:\oracleinstantclient文件夹的读写权限。  通过上面的设置后,即可实现免安装ORACLE客户端,连接到ORACLE数据库服务器。  也可以将上面解压缩后的文件和手动过程制作成安装包,实现自动安装。  注重: 1、用上面的方法,连接oracle9.2,应该也没有问题。 2、假如使用JDBC连接,需要到官网下载instantclient-jdbc-win32-10.1.0.2.zip:   包含JDBC   Driver的包 

-

资料引用:http://www.knowsky.com/384875.html

Coordinator
Nov 24, 2011 at 10:50 AM
利用oracle instant client,不安装客户端使用plsql远程连接数据库
2011-05-18 16:04

Win7 64位操作系统下安装oracle客户端遇到了问题,之后尝试了instant client,安装完成后,PL/SQL连接oracle数据库成功,下面总结一下安装与配置方法。

首先下载instant client程序,下载地址:http://www.oracle.com/technetwork/database/features/instant-client/index-097480.html

下载完成后,将文件加压缩到D:\Oracle\instantclient_11_1

配置系统环境变量,在已有的环境变量中追加如下内容:

PATH=d:\Oracle\instantclient_11_1

TNS_ADMIN=d:\Oracle\instantclient_11_1
LD_LIBRARY_PATH=d:\Oracle\instantclient_11_1
SQLPATH=d:\Oracle\instantclient_11_1
nls_lang=simplified chinese_china.ZHS16GBK

环境变量配置完成后,需要拷贝tnsnames.ora文件到D:\Oracle\instantclient_11_2目录下。

tnsnames.ora文件可以从服务器端进行拷贝,也可手动进行编辑,例如

TEST =
(DESCRIPTION =
(ADDRESS_LIST =
(ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.114.88)(PORT = 1521))
)
(CONNECT_DATA =
(SERVICE_NAME = test)
)
)
配置完成后,打开plsql进行连接,连接成功!
Coordinator
Nov 24, 2011 at 10:53 AM

不安装oracle客户端连接Oracle服务器

2010-10-26 13:54 佚名 互联网 我要评论(1) 字号:T | T
一键收藏,随时查看,分享好友!

C/S结构下,连接Oracle服务器需要安装客户端并且进行复杂的配置才能实现,下面就教您一个不安装oracle客户端连接Oracle服务器的方法,供您参考。

AD:


 

一、引言

Oracle作为一款专业的数据库软件系统可以运行于多层次网络结构,包括单机系统,C/S(客户机/服务器)结构,B/S(浏览器/服务器)结构等。在C/S结构下,要使客户端应用程序能连接Oracle服务器,需要在客户端计算机上安装体积超过120MB的Oracle客户端软件,并进行复杂的配置才能实现。如果应用程序需要部署在多个客户端上,那么安装Oracle客户端和配置连接Oracle服务器的工作将变得非常繁琐。

本文以9i为例介绍一种在不安装Oracle客户端的情况下,应用程序在客户端连接Oracle服务器的方法。

二、具体实现

安装在客户端的应用程序要连接Oracle数据库服务器,需要Oracle数据库的驱动程序,接口文件和各类支持文件。这些文件必须和应用程序存放在相同的目录下,如果单独存放,

可以设置环境变量,使应用程序在相应目录下找到这些文件。

1.应用程序所需文件

在安装了Oracle客户端的计算机上可以找到应用程序连接数据库时所需的所有文件,文件共41个,12.9MB。这些文件必须严格按照以下目录位置进行存放, Appdir是应用程序当前目录。

Appdir目录下共30个文件,这些文件是Oracle服务器所需的动态链接库

oci.dll
oracle.key
oraclient9.dll
oracommon9.dll
ORACORE9.DLL
orageneric9.dll
oraldapclnt9.dll
oran9.dll
ORANCDS9.DLL
orancrypt9.dll
oranhost9.dll
oranl9.dll
oranldap9.dll
ORANLS9.DLL
oranms.dll
oranmsp.dll
orannzsbb9.dll
oranoname9.dll
oranro9.dll
orantns9.dll
ORAPLS9.DLL
ORASLAX9.DLL
ORASNLS9.DLL
ORASQL9.DLL
oratrace9.dll
ORAUNLS9.DLL
oravsn9.dll
orawtc9.dll
ORAXML9.DLL
ORAXSD9.DLL

Appdir\bin目录下有一个文件

orantcp9.dll

Appdir\network\ADMIN目录下只有一个文件,该文件是连接数据库的配置文件

tnsnames.ora

Appdir\ocommon\nls\ADMIN\DATA目录下有8个文件,这些文件是简体中文语言环境的支持文件,其它语言运行环境所需文件会有不同

LX00001.NLB
LX00023.NLB
LX10001.NLB
LX10035.NLB
LX1BOOT.NLB
LX20001.NLB
LX20354.NLB
LX60354.NLB

Appdir\oracore\zoneinfo目录下只有一个文件,用来存储时区信息

timezone.dat

2.修改网络配置文件

在Appdir\network\ADMIN目录下的tnsnames.ora文件是重要的配置文件,在这个文件中存储了连接Oracle数据库服务器的参数——服务命名对应的连接子串。该文件可以用记事本进行编辑,以下是一个tnsnames.ora文件中的配置实例:

  1. APPDB =  
  2. (DESCRIPTION =  
  3.     (ADDRESS_LIST =  
  4.       (ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.1.1)(PORT = 1521))  
  5.     )  
  6.     (CONNECT_DATA =  
  7.       (SERVICE_NAME = APPDB)  
  8.     )  

网络配置文件各参数说明:
APPDB:本地命名的名称,即Oracle数据库的名字
PROTOCOL:使用的协议,本例使用TCP
HOST:服务器的地址
PORT:服务器的监听端口号,默认使用1521
SERVICE_NAME: Oracle数据库服务器的名称

3.编辑oracle.key文件

文件oracle.key指明了在注册表中Oracle程序的存储目录,以及ORACLE_HOME和其它的环境变量等信息,该文件内容很少,只记录了简单的目录项,用记事本便可打开对其进行编辑,通常情况下的设置为:

software\appdir

Oracle连接数据库时会到注册表的HKEY_LOCAL_MACHINE\SOFTWARE\APPDIR的对应项中查找数据库的相关信息。

4.注册数据库信息

完成以上工作后,只需在注册表中写入Oracle数据库的语言环境和资源路径,应用程序便可以连接Oracle数据库,无需设置操作系统的环境变量,注册表信息的保存位置应与

oracle.key文件中设定的项值对应,注册表的清单如下:

[HKEY_LOCAL_MACHINE\SOFTWARE\APPDIR]
"NLS_LANG"="SIMPLIFIED CHINESE_CHINA.ZHS16GBK"
"ORACLE_HOME"="C:\\Program Files\\appdir"

SIMPLIFIED CHINESE_CHINA.ZHS16GBK表示使用简体中文字符集。应用程序和连接Oracle数据库所需的文件存放在C:\Program Files\appdir目录下,即应用程序的安装目录。

三、总结

为了解决客户端应用程序在不安装Oracle客户端的情况下,方便地连接数据库,Oracle在其最新版本的数据库系统中推出了一款免费的工具Instant Client,利用该工具中提供的若干个文件,客户端应用程序既不需要修改注册表,也不需要设置环境变量,便可以连接Oracle数据库服务器,使得应用程序的发行和部署更加简单,不过Instant Client提供的核心文件体积超过了90MB。本文所叙述的方法文件小巧、实现方便,也具有很好的实用价值。
 

 

 

 

【编辑推荐】