再搞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位 总算解决了,记下来,免得下次又忘掉,也可以给大家都看看。 (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |