欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  IT编程

【SQL】用SSMS连接Oracle手记

程序员文章站 2022-04-16 09:35:57
情况: A机上有SSMS 18.x, B机上有SQL Server 2008 R2数据库, C机上有Oracle Database 11.2.0.4.0数据库 我想在A机用ssms连C机的oracle,一番了解,普遍做法是装ODAC xcopy包,里面有oledb组件,然后就可以在sqlserver ......

情况:

  • a机上有ssms 18.x,
  • b机上有sql server 2008 r2数据库,
  • c机上有oracle database 11.2.0.4.0数据库

我想在a机用ssms连c机的oracle,一番了解,普遍做法是装odac xcopy包,里面有oledb组件,然后就可以在sqlserver的链接服务器里添加oracle数据库。如图:

【SQL】用SSMS连接Oracle手记

 

于是我开始在ssms所在电脑装odac,结果提供程序的下拉列表里死活不出现“oracle provider for ole db”,后来想想也许应该在sql server所在电脑装才对,果然,有了,但紧接着又是连不上的问题:

【SQL】用SSMS连接Oracle手记

 

按关键字oraoledb.oracle 7302搜,相同问题一堆,有说勾一下【允许进程内】的,有说把sqlserver服务的启动账户改为【local service】的,也有通过若干步骤修改一个叫【msdainitialize】的dcom组件的权限的,我都试过了,sqlserver服务器也重启了无数次,odac版本也试过若干个,统统不能解决我的问题。绝望之下,我下了【oracle database 11g release 2 client (11.2.0.1.0) for microsoft windows (x64)】,只勾了里面的oledb(具体叫啥我懒得回看了)一个东西,终于连上了。

总结:

  • 一定要有个sql server。光ssms和oracle是建立不起连接的,本质上连接oracle的是sql sever,不是ssms本身。
  • oledb要装在sql server所在电脑上。我是装oracle客户端里的oledb才有用,odac里的没用,估计还是版本问题。