sqlserver 访问oracle

 sqlserver 通过链接服务器方式访问oracle 

1.环境要求: 在sqlserver 服务器中能访问oracle服务器。 sqlserver 服务器中安装相应的oracle客户端

2. 在oracle客户端中配置好TNS  就是在oracle相应的目录下,添加服务器的 oracle 链接字符串 如:F:\app\client\Administrator1\product\12.1.0\client_1\network\admin

   更改tnsnames.ora 在文件末尾中添加如下内容:

  ORCL_TEST /*要使用的服务名称 自定义*/=
(DESCRIPTION =
(ADDRESS_LIST =
(ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.10.62 /*oracle 服务器地址*/)(PORT = 1521 /*端口地址默认*/))
)
(CONNECT_DATA =
(SERVICE_NAME = topprd /*实例名称*/)
)
)

3. 完成1,2步之后,可以用oracle sql developer 测试1,2 是否成功。

4.  在sqlserver manager studio 

新建一个链接服务器:

其中:1 必须, 2 是刚刚建立的服务名称   3,4 可以自定义

再在安全中填写oracle的用户名和密码

 

容易报错的地方:  

无法初始化链接服务器“TEST”的 OLE DB 访问接口“OraOLEDB.Oracle”的数据源对象。
链接服务器"TEST"的 OLE DB 访问接口 "OraOLEDB.Oracle" 返回了消息 "ORA-12154: TNS: 无法解析指定的连接标识符"。 (Microsoft SQL Server,错误: 7303)

 

解决方法:

按照网上的方案,先后使用了三种方案都没有解决问题(1.修改注册表,2.勾选“允许进程内”,3.设置dcomcnfg)。最后在一篇博客中找到了解决方案,

将SQL Server(MSSQLSERVER)和SQL Full-Filter Deamon Launcher(MSSQLSERVER)两个服务的登录身份改为Local Service就可以了。

 如图

1.设置这两个服务的登录身份

参考网址:http://www.cnblogs.com/tiger2soft/p/6954308.html

 

 

折腾了好久,终于搞定了!

访问调用存储过程: execute ('oracle_sp_name;') at [192.168.1.50]   // exec(' exec  存储过程(?, ?)', 输入参数, @输出参数 out) at 链接服务器名

转载于:https://www.cnblogs.com/hzf08/p/7761347.html

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值