SQL Server如何成功访问Oracle?

patrickjiang 2013-08-28 01:34:42
现有两台服务器,一台是装了SQL Server 2008,另外一台装了Oracle。今天早上在SQL Server 2008测试连接Oracle,情况如下:

1、已经通过Oracle Client使用Net Configuration Assistant测试连接远程Oracle服务器成功,如下图所示。



2、使用SQL Server的“链接服务器”连接Oracle,却怎么也连不上,如下图所示。请教问题出在哪里?
...全文
448 32 打赏 收藏 转发到动态 举报
写回复
用AI写文章
32 条回复
切换为时间正序
请发表友善的回复…
发表回复
patrickjiang 2013-08-31
  • 打赏
  • 举报
回复
@唐诗三百首,最后成功在SQL Server中建立了链接服务器,错误的地方是数据源应该写成:
172.16.100.204/orcl,IP地址+SID名称,如下图所示。



另外在PLSQL指定了Client目录,也能成功登陆Oracle服务器了,如下图所示。

唐诗三百首 2013-08-30
  • 打赏
  • 举报
回复
该不会是SQLPLUS用错了吧? 格式: sqlplus [帐号]/[密码]@[服务名]
patrickjiang 2013-08-30
  • 打赏
  • 举报
回复
@唐诗三百首 使用PL SQL Developer指定需要访问的Client目录后,能够成功访问Oracle数据库了。谢谢!不知道为什么SQL Plus为啥不能访问。
stuwe 2013-08-28
  • 打赏
  • 举报
回复
MSDAORA驱动不行,得换个驱动 你展开链接服务器下的访问接口,正常装完ora客户端驱动,会有一个连接ora的另一个接口,要换成那个才可以 另外,还要设置驱动的属性,设置允许进程内 如果涉及到事务操作的,还得装分布式驱动的客户端及配置操作系统的MSDTC
patrickjiang 2013-08-28
  • 打赏
  • 举报
回复
patrickjiang 2013-08-28
  • 打赏
  • 举报
回复
#26楼请删除,#26楼请删除,#26楼请删除,#26楼请删除,#26楼请删除。

我现在最后试了一下:
1、Net Manager测试成功。


2、Net Configuration Assistant也测试成功。


3、SQL Plus显示:ORA-12560: TNS: 协议适配器错误
patrickjiang 2013-08-28
  • 打赏
  • 举报
回复
甲方不答应!

1、我首先测试了Net Manager下的登陆,测试成功了。


2、其次测试Net Configuration Assistant,也测试成功了。


3、最后使用SQL Plus测试,出现了ORA-12560: TNS: 协议适配器错误。究竟问题出在哪里呢?
唐诗三百首 2013-08-28
  • 打赏
  • 举报
回复
唐诗在4,7,18楼均有请LZ确认SQL Server端Windows可以通过SQLPlus访问远程Oracle.. LZ貌似没理会..
引用 4 楼 ap0405140 的回复:
确认SQL Server端Windows可以通过SQLPlus访问远程Oracle了吗? 如果不行,先调试ok再创建link server喔. 参考 http://database.51cto.com/art/201009/224737.htm
引用 7 楼 ap0405140 的回复:
1.SQL Server端Windows需装对应版本的Oracle客户端. 2.Oracle Net Manager中创建服务名,测试连接通过. 3.确认SQL Server端Windows可以通过SQLPlus访问远程Oracle. 4.创建link server,如下代码.

sp_addlinkedserver 'LINZHIYUAN', 'Oracle',  'MSDAORA', '[Oracle服务名]'

sp_addlinkedsrvlogin 'LINZHIYUAN', 'false', 'sa', '[Oracle帐号]', '[密码]'
5.测试访问.

select top 10 * from LINZHIYUAN..[用户名].[表名]
引用 18 楼 ap0405140 的回复:
确认SQL Server端windows用SQLPlus能访问Oracle了吗? 可能讲不清楚喔,LZ可以私信找我,远程帮你看看..
唐诗三百首 2013-08-28
  • 打赏
  • 举报
回复
造成ORA-12560: TNS: 协议适配器错误的问题的原因有三个: 1.监听服务没有起起来。windows平台个一如下操作:开始---程序---管理工具---服务,打开服务面板, 启动oraclehome92TNSlistener服务。 2.database instance没有起起来。windows平台如下操作:开始---程序---管理工具---服务,打开服务 面板,启动oracleserviceXXXX,XXXX就是你的database SID,如 ORCL. 3.注册表问题。regedit,然后进入HKEY_LOCAL_MACHINE/SOFTWARE/ORACLE/HOME0将该环境变量ORACLE_SID设置为XXXX,XXXX就是你的database SID.或者右几我的电脑,属性--高级--环境变量---系统变量--新建,变量名=oracle_sid,变量值=XXXX,XXXX就是你的database SID.或者进入sqlplus前,在command line下 输set oracle_sid=XXXX,XXXX就是你的database SID,如 ORCL.经过以上步骤,就可以解决问题了。
patrickjiang 2013-08-28
  • 打赏
  • 举报
回复


出现了“ORA-12560: TNS: 协议适配器错误”,难道是数据库服务器的问题?因为只有监听服务、数据库实例和注册表出了问题才会这样。
patrickjiang 2013-08-28
  • 打赏
  • 举报
回复
@唐诗三百首,@涛声依旧_Rocky

首先检查$oracle_home$/network/admin目录下的tnsnames.ora文件,内容如下:

这个内容上看应该是没问题了。

其次使用Client自带的SQL Plus,输入用户名和密码登陆,出现以下情况:

---涛声依旧--- 2013-08-28
  • 打赏
  • 举报
回复
引用 6 楼 patrickjiang 的回复:
@Shawn Oracle 客户端tnsnames.ora 文件具体位置是在哪里啊?能否告知一下,我好去找了编辑。
在安装目录\product\10.2.0\db_1\NETWORK\ADMIN
patrickjiang 2013-08-28
  • 打赏
  • 举报
回复
谢谢以上各位的热心帮助,谢谢@唐诗三百首。
patrickjiang 2013-08-28
  • 打赏
  • 举报
回复
看来还是不行哦,我再想想其它办法。
唐诗三百首 2013-08-28
  • 打赏
  • 举报
回复
确认SQL Server端windows用SQLPlus能访问Oracle了吗? 可能讲不清楚喔,LZ可以私信找我,远程帮你看看..
patrickjiang 2013-08-28
  • 打赏
  • 举报
回复
@唐诗三百首 我重新执行了
EXEC sp_addlinkedserver 'LINZHIYUAN', 'Oracle',  'MSDAORA', 'linzhiyuan'
 
EXEC sp_addlinkedsrvlogin 'LINZHIYUAN', 'false', 'sa', 'likunman', 'likunman2013'
然后又执行了以下代码:
SELECT * FROM OPENQUERY(LINZHIYUAN,'SELECT * FROM YNLZYJWC.JSXXB')
显示了以下结果:
链接服务器"LINZHIYUAN"的 OLE DB 访问接口 "MSDAORA" 返回了消息 "ORA-12154: TNS: 无法解析指定的连接标识符
"。
消息 7303,级别 16,状态 1,第 1 行
无法初始化链接服务器 "LINZHIYUAN" 的 OLE DB 访问接口 "MSDAORA" 的数据源对象。
唐诗三百首 2013-08-28
  • 打赏
  • 举报
回复
删掉,用这个试试..

EXEC sp_addlinkedserver 'LINZHIYUAN', 'Oracle',  'MSDAORA', 'linzhiyuan'

EXEC sp_addlinkedsrvlogin 'LINZHIYUAN', 'false', 'sa', 'likunman', 'likunman2013'
唐诗三百首 2013-08-28
  • 打赏
  • 举报
回复
直接测试访问可以吗? select top 10 * from LINZHIYUAN..[用户名].[表名]
patrickjiang 2013-08-28
  • 打赏
  • 举报
回复
patrickjiang 2013-08-28
  • 打赏
  • 举报
回复
@Shawn

Client的Net Manager也试过了,如下图所示:


我在Net Configuration Assistant里测试过连接Oracle服务器,当时是测试连接成功了,如下图所示:
加载更多回复(12)

34,590

社区成员

发帖
与我相关
我的任务
社区描述
MS-SQL Server相关内容讨论专区
社区管理员
  • 基础类社区
  • 二月十六
  • 卖水果的net
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧