Oracle连接错误解决办法

2022年3月28日更新

SQL SERVER – How to Download Microsoft OLE DB Provider for Oracle (MSDAORA) for 64 bit?

https://blog.sqlauthority.com/2016/12/17/sql-server-download-microsoft-ole-db-provider-oracle-msdaora-64-bit/

MSDAORA is short form for “Microsoft OLE DB Provider for Oracle”.
MSDAORA is driver provided by Microsoft to connect to Oracle database server.
There is no 64-bit version provided by Microsoft for MSDAORA. Its only available for 32 bit.
MSDAORA is no longer supported by current versions of Oracle. It was last updated for Oracle 9, and is no longer being updated.
For 64 bit, we need to download and use the Oracle client and the provider from their site for connecting with SQL. Oracle has a 64-bit version that is usable for us.
Oracle is a provider which is supported by Oracle.

在64位系统里面,新建一个sss.udl,双击打开是以6位方式打开的,看不到Microsoft OLE DB Provider for Oracle是正常的。

32位的cmd.exe 在syswow64文件夹内,进入命令行以32位方式打开才能看到Microsoft OLE DB Provider for Oracle

 

 

 

在win7 64位 使用oledb方式,连接oracle9i 数据库,提示:未在本地计算机上注册OraOLEDB.Oracle.1的程序

项目工程调试模式改为x86,不要是any cpu

安装Oracle9i客户端精简版,并注册 resgvr32 c:\oracle\ora90\bin\oraoledb.dll。

如遇中文乱码,在注册表修改……\oracle\home0下的字符集,我是改成……us7ascii

 

说重点:

关于需要依赖dll的程序,换台电脑无法使用问题的通用解决思路:

程序在A电脑可以使用,换到B电脑无法使用,在排除是系统框架程序(.net framework等)原因后,可能是两台电脑注册的dll版本不一致,或者系统环境变量等设置不一致。

在这里http://www.xdowns.com/article/241/Article_3338.html 有很多相关工具:

本次查到问题原因使用率如下工具

3. Process Explorer http://www.xdowns.com/soft/6/56/2006/Soft_33951.html

    这个工具很好用,它可以查看当前运行的每个程序都调用了哪些dll,而且显示的很全面。相对于Dependency Walker,它显示dll的信息更全一些,而且动态性更强一些,比如在调试代码的过程中,程序运行到具体的一步,它调用了哪些dll,再运行到下一步,又调用了哪些dll,都可以看出来。

5. regdllview

    这个工具的特点是可以查看每个已注册的dll的id值,并且可以很方便的在注册表中找到这个id。

 

我就是用regdllview发现两台电脑已注册的oledb.dll不一致,重新注册,变为一致 解决了这个问题。

posted @ 2018-01-24 08:54  扬中源  阅读(2556)  评论(0编辑  收藏  举报