如何在SQL Server 2000中创建链接服务器?

yuercf 2002-10-09 04:33:18
小弟要通过SQL Server 2000访问Oracle 8.0.5,如何在SQL Server 2000中创建与Oracle的链接,已知Oracle所在机器名称,并在上面建了一个数据表(student)
建立链接后,如何访问student表中的数据?
...全文
1391 17 打赏 收藏 转发到动态 举报
写回复
用AI写文章
17 条回复
切换为时间正序
请发表友善的回复…
发表回复
bowlder 2002-10-12
  • 打赏
  • 举报
回复
应该和你联接的用户有关,该oracle用户权限的问题。
yuercf 2002-10-11
  • 打赏
  • 举报
回复
链接服务器中无student表,为什么?
yuercf 2002-10-10
  • 打赏
  • 举报
回复
student表是system创建的
bowlder 2002-10-10
  • 打赏
  • 举报
回复
不可以直接使用select查询,要用OPENQUERY,参见上面的说明。
检查一下student表是不是用户system创建的。
yuercf 2002-10-10
  • 打赏
  • 举报
回复
错误信息为"OLE DB 提供程序 'linked_server' 不包含表 '"system"."student"'。该表可能不存在,或当前用户没有使用该表的权限",请帮忙解释!
yuercf 2002-10-10
  • 打赏
  • 举报
回复
为何直接使用SQL查询不可以,如下:查询student表中的记录
select * from linked_server..system.student
总是出错为什么?
bowlder 2002-10-10
  • 打赏
  • 举报
回复
检查SQL SERVER链接服务器的表中是不是有表STUDENT存在.相同的语句转换语法到ORACLE中执行。
bowlder 2002-10-09
  • 打赏
  • 举报
回复
Book Online中的例子

EXEC sp_addlinkedserver 'OracleSvr',
'Oracle 7.3',
'MSDAORA',
'ORCLDB'
GO
SELECT *
FROM OPENQUERY(OracleSvr, 'SELECT name, id FROM joe.titles')
GO
bowlder 2002-10-09
  • 打赏
  • 举报
回复
sql代码我还真没有写过,不过Book Online 中有,你搜索一下sp_addlinkedserver即可找到。

select语句是这样写的:
select * from LineDbName.DataName.DbUser.DbTable
其中:
LineDbName为连接服务器名,即你输入的名字。如果LineDbName为IP地址,则需要用[]括起来。如:[10.2.10.115]
DataName为数据库名
DbUser为数据库用户名
DbTable为查询表名
例如:
select * from CLUB..CLUB.CLUB_PASSENGER_ACCOUNT

或者
select * from [10.2.10.115]..CLUB.CLUB_PASSENGER_ACCOUNT

第一个club为连接服务器名,第二个club为用户名,这里的两个.表示深略库名。

如果你能够连上表示你已经配置了net config。net config即为oracle9 中configuration and migration tools-net configuration assistant,在oracle8中为easy config,配置起来和odbc差不多。

连接成功后会引入库中所有的表,所以你会看到一些无关的表。表示不可以直接打开浏览的,需要些语句。他的语句同一般的语句写法有些区别,使用OPENQUERY ( linked_server , 'query' ) ,linked_server是连接服务器名,query为查询的select 语句。
yuercf 2002-10-09
  • 打赏
  • 举报
回复
小弟对Oracle不是很熟,Net Config如何配置,请指点步骤!
yuercf 2002-10-09
  • 打赏
  • 举报
回复
bowlder(玩石):太谢谢你了,好人做到底,再问如下问题:
1、用SQL代码如何实现,另外链接成功后,如何在SQL Server2000中,用SQL代码访问,如“select * from student”
2、链接成功后,在SQL Server2000 企业管理器中,打开链接服务器(student)中的表,为何显示一些无关的数据表,且右键点击,打不开,无法看到表的内容?
leimin 2002-10-09
  • 打赏
  • 举报
回复
below from sql bol:
此示例创建一台名为 LONDON Mktg 的链接服务器,该服务器使用用于 Oracle 的 Microsoft OLE DB 提供程序,并且假设此 Oracle 数据库的 SQL*Net 别名为 MyServer。

USE master
GO
-- To use named parameters:
EXEC sp_addlinkedserver
@server = 'LONDON Mktg',
@srvproduct = 'Oracle',
@provider = 'MSDAORA',
@datasrc = 'MyServer'
GO
-- OR to use no named parameters:
USE master
GO
EXEC sp_addlinkedserver
'LONDON Mktg',
'Oracle',
'MSDAORA',
'MyServer'
GO

bowlder 2002-10-09
  • 打赏
  • 举报
回复
sqlserver的服务器需要至少安装一个oracle的net config组件。然后配置网络服务。
bowlder 2002-10-09
  • 打赏
  • 举报
回复
连接服务器输入student--student指的是连接服务器名称,就如同dns数据源名称一样,随便输入一个有意义的名字就可以了。
数据源即为oracle主机字符串,产品和程序字符串无所谓,一般和数据源输入一样。
yuercf 2002-10-09
  • 打赏
  • 举报
回复
student是表名,而Oracle所在的机器名,是不是你说错了?另外所谓的“产品”名称指什么,能否详细说明
bowlder 2002-10-09
  • 打赏
  • 举报
回复
打开企业管理器-数据库服务器-安全性-新建连接服务器
常规:
连接服务器输入student,选择其他数据源(Microsoft OLE DB Provider for Oracle),产品名称、数据源和程序字符串就不用我说了
安全性:
用此安全上下文进行,数据登陆和密码
服务器选项:
数据库访问和使用远程排序规则等
yuercf 2002-10-09
  • 打赏
  • 举报
回复
快救命呀,同仁们!

34,590

社区成员

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

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