博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
sqlserver 访问oracle
阅读量:6692 次
发布时间:2019-06-25

本文共 1277 字,大约阅读时间需要 4 分钟。

 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

你可能感兴趣的文章
找出由‘1’组成的孤岛
查看>>
c#中获取路径方法
查看>>
Java中的数组和方法
查看>>
异步获取CMD命令行输出内容
查看>>
AIX/Linux/HP-UX查看CPU/内存/磁盘/存储命令
查看>>
第九章结构体与公用体
查看>>
筛法求素数的最优算法+解释
查看>>
.net使用sqllite实例
查看>>
七牛直播云-m3u8格式直播
查看>>
sqlserver2008 创建定时任务
查看>>
as3+php上传图片的三种方式
查看>>
sqlserver master恢复
查看>>
看这一篇就够了,css选择器知识汇总
查看>>
[译]科学计算可视化在andriod与ios实现的工具
查看>>
开始blog
查看>>
3dmax2012卸载/安装失败/如何彻底卸载清除干净3dmax2012注册表和文件的方法
查看>>
Spring+SpringMVC+MyBatis深入学习及搭建(十五)——SpringMVC注解开发(基础篇)
查看>>
Spring+SpringMVC+MyBatis深入学习及搭建(九)——MyBatis和Spring整合
查看>>
javascript对象
查看>>
中国版Azure支持那些版本号Linux
查看>>