sqlserver2005连接oracle

lengchenghao 2007-09-04 05:50:27
高手们好:小弟请教一个问题,我现在要用sqlserver2005的SQL Server Management Studio连接oracle10,可能以后还要要连oracle9i
我的tnsnames.ora文件是这样的
TJ_DB =
(DESCRIPTION =
(ADDRESS_LIST =
(ADDRESS = (PROTOCOL = TCP)(HOST = 192.2.8.251)(PORT = 1521))
)
(CONNECT_DATA =
(SERVICE_NAME = ora2000)
)
)


我在我的Server Management Studio是这样写的:
EXEC sp_addlinkedserver
@server = 'exchange',
@srvproduct = 'Oracle',
@provider = 'MSDAORA',
@datasrc = '192.2.8.251/ora2000'

exec sp_addlinkedsrvlogin 'exchange', 'false',‘sa’,'sptv', 'sptv'

select * from openquery(exchange, 'select * from SPTV.SPTV_TAB_USER')

但是执行到最后一步报了这个错误:
链接服务器"exchange"的 OLE DB 访问接口 "MSDAORA" 返回了消息 "ORA-12154: TNS: 无法处理服务名
"。
消息 7303,级别 16,状态 1,第 1 行
无法初始化链接服务器 "exchange" 的 OLE DB 访问接口 "MSDAORA" 的数据源对象。

请高手们帮我看看是什么原因!小弟将不胜感激!先谢过了
...全文
1753 26 打赏 收藏 转发到动态 举报
写回复
用AI写文章
26 条回复
切换为时间正序
请发表友善的回复…
发表回复
gaixiaochuan 2012-03-26
  • 打赏
  • 举报
回复
你们有没有这样的问题, 直接用sql plus 连接oracle 访问速度挺快,但是,如果用连接服务器 访问oracle数据速度会降很多?
akuan956 2009-02-25
  • 打赏
  • 举报
回复
好帖,收藏了!
OracleRoob 2007-09-10
  • 打赏
  • 举报
回复
--参考:

如何用sqlserver 2000链接服务器执行oracle过程

http://community.csdn.net/Expert/topic/5750/5750007.xml?temp=.1604273
lengchenghao 2007-09-10
  • 打赏
  • 举报
回复
sql server2005 执行插入、删除、更新oracle中的表我自己鼓捣出来了,但是如何执行oracle的过程呢?请指点一下吧!
lengchenghao 2007-09-10
  • 打赏
  • 举报
回复
yes!!!!!! ruihuahan(飞不起来的笨鸟) ( ) 信誉:100 太感谢你了!成功了。给分了!
我在另加分,有可不可以在sql server2005 中执行 插入 更新,删除,执行过程等操作?
如果可以的话是怎样的呢?谢谢帮助
ruihuahan 2007-09-10
  • 打赏
  • 举报
回复
去掉[]
lengchenghao 2007-09-10
  • 打赏
  • 举报
回复
wangtiecheng(不知不为过,不学就是错!) 感谢!!!!!
lengchenghao 2007-09-10
  • 打赏
  • 举报
回复
周末没有上班,没有来的急看帖子,
ruihuahan(飞不起来的笨鸟) ( ) 谢谢你,我按照你这样配置终于没有提示“连接不上了”,但是我执行“select * from openquery(A, 'select * from [SPTV].[SPTV_TAB_USER]')”
报了这个错误:链接服务器"A"的 OLE DB 访问接口 "MSDAORA" 返回了消息 "ORA-00903: invalid table name"。
该表确实是有的,我进入oracle的用户也确实是“sptv”为什么还有这个错误呢?不应该是“[SPTV].[SPTV_TAB_USER]”吗?我应该怎样才能访问到oracle的表呢?
烦请再帮助我一下,谢谢了。十分感谢。
lengchenghao 2007-09-10
  • 打赏
  • 举报
回复
wangtiecheng(不知不为过,不学就是错!) ,ruihuahan(飞不起来的笨鸟) 谢谢你们,wangtiecheng(不知不为过,不学就是错!)在另个帖子里
(http://community.csdn.net/Expert/topic/5743/5743966.xml?temp=.1424524)给了100分了,这里少给点吧。
OracleRoob 2007-09-07
  • 打赏
  • 举报
回复
可能是服务名配置的有问题。

建议配置两个服务名,一个用机器名,一个用机器的IP。
lengchenghao 2007-09-07
  • 打赏
  • 举报
回复
wangtiecheng(不知不为过,不学就是错!) 太谢谢你了,如果能实现我将下一个帖子的100分一起给你。
lengchenghao 2007-09-07
  • 打赏
  • 举报
回复
wangtiecheng(不知不为过,不学就是错!) 真的很感谢你的指导. 太太太感谢你的耐心指导,我按照你的设置方式重新设置了,“访问接口字符串”我没填,在这一步“并设置数据源为Oracle的IP或机器名”我设置的是
TJ_DB =
(DESCRIPTION =
(ADDRESS_LIST =
(ADDRESS = (PROTOCOL = TCP)(HOST = 192.2.8.251)(PORT = 1521))
)
(CONNECT_DATA =
(SERVICE_NAME = ora2000)
)
)
中的“192.2.8.251”
但是运行select * from openquery(ora2000, 'select * from [SPTV].[SPTV_TAB_USER]')
报了这个错误“链接服务器"exchange"的 OLE DB 访问接口 "MSDAORA" 返回了消息 "ORA-12514: TNS: 监听进程不能解析在连接描述符中给出的 SERVICE_NAME”
哪我的“SERVICE_NAME”应该是怎么设置呢?
烦请再次指点一二,不盛感激,先谢过了。
ruihuahan 2007-09-07
  • 打赏
  • 举报
回复
OLE DB 连接串中的 datasource 应该等于 tnsnames.ora 中 connection description 的名称 TJ_DB。
OracleRoob 2007-09-06
  • 打赏
  • 举报
回复


1、打开SQL Server 2005的Management Studio
2、展开对象资源管理器
3、选择“服务器对象”,展开,选择“链接服务器”
4、右键“新建链接服务器”,打开新建链接服务器窗口
5、输入链接服务器名,选择“其他数据源”下的“访问接口”,就是你的Oracle驱动,并设置数据源为Oracle的IP或机器名
6、在“安全性”页面中,点击“新建”,在“本地登录”中输入SQL Server的某个用户,然后在“远程用户”中输入Oracle的用户名,“远程密码”中输入Oracle用户名的密码
7、确定即可,然后用openquery()函数访问Oracle。

lengchenghao 2007-09-06
  • 打赏
  • 举报
回复
wangtiecheng(不知不为过,不学就是错!) 真的很感谢你的指导.但是问题没有解决。
lengchenghao 2007-09-06
  • 打赏
  • 举报
回复
每人回答 就结帖吧
lengchenghao 2007-09-05
  • 打赏
  • 举报
回复
呵呵!很感谢你,我们的要求是用sqlerver2005 连接oracle,不能用其他的。
OracleRoob 2007-09-05
  • 打赏
  • 举报
回复
用第三方工具PL/SQL试试
lengchenghao 2007-09-05
  • 打赏
  • 举报
回复
恳请再帮助一下。
lengchenghao 2007-09-05
  • 打赏
  • 举报
回复
我的 oracle客户端是配置过的,我通过oracle客户是可以访问该数据库的呀!还要配置什么呢?
如何配置呢?
加载更多回复(6)

22,207

社区成员

发帖
与我相关
我的任务
社区描述
MS-SQL Server 疑难问题
社区管理员
  • 疑难问题社区
  • 尘觉
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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