环境:SQL Server 2008 64位,原先已创建成功链接至oracle数据库。
在windows机器上重新安装oracle 64位客户端后,原有创建的链接服务器报“OraOLEDB.Oracle未注册,7403错误”
此问题是注册表中原有OraOLEDB11.dll路径与新安装客户端路径不一致,导致Sql Server没有找到驱动。
解决办法:
1、打开注册表编辑器:确认[HKEY_CLASSES_ROOT\CLSID\{3F63C36E-51A3-11D2-BB7D-00C04FA30080}\InprocServer32]中的值:@="D:\\app\\client\\product\\11.2.0\\client_1\\BIN\\OraOLEDB11.DLL"是Oracle客户端的安装路径的值。
2、重新注册OraOLEDB11.DLL:命令窗口 regsvr32 \[安装路径]\OraOLEDB11.DLL
3、SQL Server Management Studio -- 服务器对象 -- 链接服务器 -- 右键已创建的‘链接’,进行测试是否连通。
4、通过sql语句查看是否连通:select * from openquery(DBC_link,'select * from oracleDB'); --DBC_link为创建链接名称,oracleDB为oracle数据库中已存在的表。
5、如连通还有问题可确认访问oracle数据端口是否正常、链接使用的用户名/密码在oracle数据中是否已建立并分配相关权限。