我在windows 2008 r2上,使用OleDB方式访问oracle时,提示:未在本地计算机上注册“OraOleDB.Oracle”提供程序

时间:2021-02-19 15:00:35
我在windows 2008 r2上安装了oracle的ODAC1120320_x64,但是在使用OleDB方式访问oracle时,提示:未在本地计算机上注册“OraOleDB.Oracle”提供程序。


数据库访问串为:<add key="OleDbConnectionString" value="Provider=OraOleDB.Oracle;Data Source=数据库;User ID=用户;Password=密码" />
 
项目的目标平台设为X64

请问该如何解决

14 个解决方案

#1


首先,不说别的,你的连接串就有问题  Oracle 的连接串应该是客户端ora文件中配置的实例名和密码
而且你确保你电脑装了oracle客户端  这个错误一般是为安装oracle客户端 或者客户端注册程序失败引起的.  记得注册时如果是win7电脑记得以管理员身份运行   如果你是64位电脑的话,恭喜你,64位电脑连接oracle 出问题的概率比较大。。。

#2




ora的文件配置是正确的吗?

#4


1:OraOleDB.Oracle 有没有这个dll有的话注册一下看看能不能成功。
2:看看tnsnames.ora配置好了没有,还有监听,然后用Net Manager测试一下看看能否连接成功。
如果不是就跟踪一下你的代码。

#5


回复楼上各位,我把连接字符串简写了,其实应该是:
Data Source=(DESCRIPTION =(ADDRESS_LIST =(ADDRESS = (PROTOCOL = TCP)(HOST = 192.1.1.1)(PORT = 1521))) (CONNECT_DATA =(SERVICE_NAME = oracle))); Persist Security Info=True;Password=**;User ID=*;"

这种形式 

#6


引用 3 楼  的回复:
https://forums.oracle.com/forums/thread.jspa?messageID=10432894


现在的 问题时我就是安装的64位的,而且目标平台也设置为了64位,还是出这个问题,请问是怎么回事?

#7


引用 6 楼  的回复:
引用 3 楼  的回复:

https://forums.oracle.com/forums/thread.jspa?messageID=10432894


现在的 问题时我就是安装的64位的,而且目标平台也设置为了64位,还是出这个问题,请问是怎么回事?
 
64位win7 使用Oracle当初我就遇到过问题的,而且还是解决不了的问题  你试试把那个注册程序以管理员身份运行在重启程序试试,不行的话我估计你就得悲剧了

#8


不会吧,不知在windows2008 r2 上能同时安装odp的32位和64位版本么?

#9


目标平台改x86,如果是web,应用程序池改支持32位为true
找个32位的oci客户端,然后Path指向它
设置Oracle文件夹权限
大抵是以上几个方法同时折腾

#10


你需要 引用一下 oracle那个 类,平台,要 保持一致。

#11


引用 9 楼  的回复:
目标平台改x86,如果是web,应用程序池改支持32位为true
找个32位的oci客户端,然后Path指向它
设置Oracle文件夹权限
大抵是以上几个方法同时折腾



在win2008 r2 下安装odac32位没问题吧

#12


引用 7 楼  的回复:
引用 6 楼  的回复:

引用 3 楼  的回复:

https://forums.oracle.com/forums/thread.jspa?messageID=10432894


现在的 问题时我就是安装的64位的,而且目标平台也设置为了64位,还是出这个问题,请问是怎么回事?
 
64位win7 使用Oracle当初我就遇到过问题的,而且还是解决不了的问题  你试试把……


真的是不可解决的问题么?!!!!!!!!

#13


解决 不了吗 ???? 怎么办那??

#14


我也遇到过,应该是32位程序无法调用64位的Oracle组件。
可以安装32位的客户端,或直接下载XCOPY版的,配置一下就可以。
我的直接把程序编译成64位的就可以用。

#1


首先,不说别的,你的连接串就有问题  Oracle 的连接串应该是客户端ora文件中配置的实例名和密码
而且你确保你电脑装了oracle客户端  这个错误一般是为安装oracle客户端 或者客户端注册程序失败引起的.  记得注册时如果是win7电脑记得以管理员身份运行   如果你是64位电脑的话,恭喜你,64位电脑连接oracle 出问题的概率比较大。。。

#2




ora的文件配置是正确的吗?

#3


#4


1:OraOleDB.Oracle 有没有这个dll有的话注册一下看看能不能成功。
2:看看tnsnames.ora配置好了没有,还有监听,然后用Net Manager测试一下看看能否连接成功。
如果不是就跟踪一下你的代码。

#5


回复楼上各位,我把连接字符串简写了,其实应该是:
Data Source=(DESCRIPTION =(ADDRESS_LIST =(ADDRESS = (PROTOCOL = TCP)(HOST = 192.1.1.1)(PORT = 1521))) (CONNECT_DATA =(SERVICE_NAME = oracle))); Persist Security Info=True;Password=**;User ID=*;"

这种形式 

#6


引用 3 楼  的回复:
https://forums.oracle.com/forums/thread.jspa?messageID=10432894


现在的 问题时我就是安装的64位的,而且目标平台也设置为了64位,还是出这个问题,请问是怎么回事?

#7


引用 6 楼  的回复:
引用 3 楼  的回复:

https://forums.oracle.com/forums/thread.jspa?messageID=10432894


现在的 问题时我就是安装的64位的,而且目标平台也设置为了64位,还是出这个问题,请问是怎么回事?
 
64位win7 使用Oracle当初我就遇到过问题的,而且还是解决不了的问题  你试试把那个注册程序以管理员身份运行在重启程序试试,不行的话我估计你就得悲剧了

#8


不会吧,不知在windows2008 r2 上能同时安装odp的32位和64位版本么?

#9


目标平台改x86,如果是web,应用程序池改支持32位为true
找个32位的oci客户端,然后Path指向它
设置Oracle文件夹权限
大抵是以上几个方法同时折腾

#10


你需要 引用一下 oracle那个 类,平台,要 保持一致。

#11


引用 9 楼  的回复:
目标平台改x86,如果是web,应用程序池改支持32位为true
找个32位的oci客户端,然后Path指向它
设置Oracle文件夹权限
大抵是以上几个方法同时折腾



在win2008 r2 下安装odac32位没问题吧

#12


引用 7 楼  的回复:
引用 6 楼  的回复:

引用 3 楼  的回复:

https://forums.oracle.com/forums/thread.jspa?messageID=10432894


现在的 问题时我就是安装的64位的,而且目标平台也设置为了64位,还是出这个问题,请问是怎么回事?
 
64位win7 使用Oracle当初我就遇到过问题的,而且还是解决不了的问题  你试试把……


真的是不可解决的问题么?!!!!!!!!

#13


解决 不了吗 ???? 怎么办那??

#14


我也遇到过,应该是32位程序无法调用64位的Oracle组件。
可以安装32位的客户端,或直接下载XCOPY版的,配置一下就可以。
我的直接把程序编译成64位的就可以用。