安装完程序后报The 'ORAOLEDB.ORACLE' provider is not registered on the local machine.错
在网上查了一下是OraOLEDB.dll 没有注册到注册表中。
找到11g相应的OraOLEDB11.dll所在位置,在命令行中进行注册
regsvr32 app/<user>/product/11.1.0/db_1/BIN/OraOLEDB11.dll
这种情况有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
再不行可以重装一下客户端试试。