解决 'OraOLEDB.Oracle.1' provider is not registered

xiaoxiao2024-07-27  36

解决方法如下: 到ORACLE_HOME目录,如c:\Oracle\Ora92 点击鼠标右键->属性->安全, 对ASP.NET 帐户赋予允许读、执行权限,并在“高级”中保证该目录的子目录、文件都继承这些属性,确定。

重新注册oraoledb.dll: regsvr32 $\oracle\ora92\bin\oraoledb.dll

2

这种情况有3种可能的原因

1.装Oracle 的机器是不是NTFS的?如果是的话,将\Ora81下的BIN的权限,全部放开,给所有用户。 (不然在B/S结构下会因为没有权限访问目录而报这个错误)

2.如果数据库服务器是Oracle816的。在服务器的那台机器上找Ora81\network\ADMIN下的sqlnet.ora文件,把里面的 SQLNET.AUTHENTICATION_SERVICES= (NTS)改成 SQLNET.AUTHENTICATION_SERVICES= (NONE) (这种会造成某些机器上报驱动初始化失败的错误,在用OracleClient下出现过一次)

3.如果以上都没有解决问题。可以考虑是不是注册表里的注册真的丢失了。(可能性比较小,windows还是比较安全的) regsvr32 ..\ORACLE_HOME\bin\OraOLEDB.dll 再不行可以重装一下客户端试试。

3

使用OLEDB方式连接Oracle数据库,使用Provider=MSDAORA.1;可正常使用,改成 Provider=OraOLEDB.Oracle;报错,显示说:未在本地计算机上注册"OraOLEDB.Oracle"提供程序(The 'OraOLEDB.Oracle' provider is not registered on the local machine.). 查了一下,发现是装Oracle 9i client的时候,默认没有安装Oracle 的OLEDB驱动,到www.oracle.com 上搜索oracle provider for oledb download, 查到http://www.oracle.com/technology/software/tech/windows/ole_db/htdocs/utilsoft.htm ,我用的oracle是9.2的版本,下载这个版本的驱动,安装之后, OraOLEDB.Oracle驱动就可以用了。(同时要保证aspnet用户对oracle home目录有完全控制权限)

4

解决方法:

1、打开安装目录Oracle\ora92的属性 -> 安全选项,选Authenticated Users,将Read and Execute 的属性取消,然后又选择,确定后重新启动机器;

2、打开Oracle\ora92\bin的属性 -> 共享选项,在网络上共享这个文件夹

 

 EasyPM 让项目管理更简单 团队协作更高效

 

 

转载请注明原文地址: https://www.6miu.com/read-5017159.html

最新回复(0)