再搞SQLServer添加Oracle链接服务器


15年的时候,曾经在一个项目,由于需要进行人资数据同步,做过SQL Server中添加Oracle链接服务器。记得当时挺顺的,

服务器对象--链接服务器--访问接口里就有Oracle (OraOLEDB.Oracle)

只记得当时在SQL Server数据库服务器安装了Oracle 11g Client 32,就可以了。


然后今日,却大费周折。两座大山摆在眼前:

一、添加链接服务器,没有Oracle选项

二、链接服务器搞上去了,但是连接不上,还是白搭

终于在中午13点睡了10分钟,又搞了半个来小时搞好了!很值得把解决过程做一记录。


首先,就是添加链接服务器没有Oracle的问题

这个时候,我就想到了安装Oracle Client,但是基于以前的认识,我选择了安装32位的

结果安装了还是不行。

问了下个同事,他之前也出过这个问题,不过他是选择安装 管理员模式就可以了,

但是我的就是安装的管理员模式,不行!

要说不一样,我现在是win10,他的是win7,好吧,再问问度娘吧。


然后就查到了ODAC(Oracle Data Access Components)Oracle数据存储组件,有些人说安装了这个就可以了

于是,注册Oracle、下载、安装,明显是骗子吧,不可以。

以上是问的度娘。


后来想想,微软家的东西,要不问问他家冰冰(bing)吧,我去,出来了好帖:

https://q.cnblogs.com/q/33850/

大牛明确的指出“他妹的,网上的方法都不靠谱”,他通过自己搞注册表解决了这个问题(帖子中第3个回复,也就是目前最后一个回复)

在这里顺便提下,怎么搞注册表:

注意,将他的注册表信息粘到记事本,需要保留:Windows Registry Editor Version 5.00

否则改了txt后缀为reg后,也无法执行注册表写入,会有错误提示(应该这个就是告诉系统这是注册表信息吧)

还有,记得修改第3个注册表的Oracle Client路径信息,改为你自己本地实际路径


小小的兴奋了下,添加链接服务器出来OraOLEDB.Oracle了

然并卵,添加Oracle链接服务器还是不能连上!!!(network下tnsnames.oRA我也设置好了


可恨的SQL Server链接不上人家Oracle也不给个错误提示,就跟你说连接错误,再给你个错误号

这个时候,再问度娘、问冰冰,给出的答案都没法解决我的问题。


只能自己想想,到底是我的tnsnames.ora不对呢,还是注册表这么加的访问接口有问题,

这个时候,想到了今年去山东时候,用过PL/SQL Devoleper,他就是用的tnsnames.ora访问数据库(Client自带的SQL Devoleper是所有信息都在登录界面填写)

没准可以通过PL/SQL Devoleper发现问题

于是,又下载了个PL/SQL Devoleper,尝试登录Oracle数据库


哈哈,还是你聪明,告诉我初始化Oracle Client失败、找不到tnsnames.ora,这算是胜利的曙光吧?

灵机一动,32  64!

难不成,需要安装64位的,win10、Server 2016需要64位的Oracle Client才可以!


赶紧安装64位Client、在对应安装目录下放上tnsnames.ora,PL/SQL Devoloper可以登录了,看来猜测有效

这个时候,SQL Server链接Oracle还是不行

好吧,注册表里的Oracle CLient安装路径也得改下,改了还是不行

试试,SQL Server服务重启,估计需要重新初始化吧,

再次测试,连接成功,漂亮!

 在服务器(Server 2016,和Win10系统长的差不多一个样)也可以,终于搞定了。


再重新想想:

由于我一开始安装的Client 32,访问接口没有出来Oracle,(当时打死也不会想到装64,之前一直32就妥妥的)

后来通过注册表方式添加上了访问接口Oracle,所以也无法知晓是不是直接安装64的,就可以出来Oracle访问接口

再者,通过这个现象貌似,Win10 、Server 2016需要安装64位


总算解决了,记下来,免得下次又忘掉,也可以给大家都看看。

你可能感兴趣的:(SQL,Server,Oracle,链接服务器,OraOLEDB.Oracle)