SQL SERVER链接服务器问题

g9ma01 2010-03-08 10:23:18
我的机器为2003操作系统,NTFS分区,oracle8.1.7,SQL SERVER2000,通过oracle客户端sqlplus可以访问数据库。在SQLSERVER创建链接服务器,执行查询语句是提示OLE DB 提供程序'MSDAORA'报错。未找到ORACLE客户端和网络组件......

相同的操作在为XP操作系统,FAT分区,oracle8.1.7,SQL SERVER2000上可以通过。请各位大侠赐教
...全文
127 6 打赏 收藏 转发到动态 举报
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
g9ma01 2010-03-09
  • 打赏
  • 举报
回复
好像和我问的问题没多大关系
jinhetian 2010-03-09
  • 打赏
  • 举报
回复
拷贝多了,前两句就够了,后面都自动生成的脚本

jinhetian 2010-03-09
  • 打赏
  • 举报
回复
我的数据库都是在MSSQL创建的链接服务器,下面是导出的脚本,你改成你的ORACLE名字就可以了


EXEC master.dbo.sp_addlinkedserver @server = N'LinkServerName', @srvproduct=N'ORACLE', @provider=N'MSDAORA', @datasrc=N'OracleDBName'
/* For security reasons the linked server remote logins password is changed with ######## */
EXEC master.dbo.sp_addlinkedsrvlogin @rmtsrvname=N'LinkServerName',@useself=N'False',@locallogin=NULL,@rmtuser=N'Account',@rmtpassword='########'

GO

EXEC master.dbo.sp_serveroption @server=N'LinkServerName', @optname=N'collation compatible', @optvalue=N'false'
GO

EXEC master.dbo.sp_serveroption @server=N'LinkServerName', @optname=N'data access', @optvalue=N'true'
GO

EXEC master.dbo.sp_serveroption @server=N'LinkServerName', @optname=N'dist', @optvalue=N'false'
GO

EXEC master.dbo.sp_serveroption @server=N'LinkServerName', @optname=N'pub', @optvalue=N'false'
GO

EXEC master.dbo.sp_serveroption @server=N'LinkServerName', @optname=N'rpc', @optvalue=N'false'
GO

EXEC master.dbo.sp_serveroption @server=N'LinkServerName', @optname=N'rpc out', @optvalue=N'false'
GO

EXEC master.dbo.sp_serveroption @server=N'LinkServerName', @optname=N'sub', @optvalue=N'false'
GO

EXEC master.dbo.sp_serveroption @server=N'LinkServerName', @optname=N'connect timeout', @optvalue=N'0'
GO

EXEC master.dbo.sp_serveroption @server=N'LinkServerName', @optname=N'collation name', @optvalue=null
GO

EXEC master.dbo.sp_serveroption @server=N'LinkServerName', @optname=N'lazy schema validation', @optvalue=N'false'
GO

EXEC master.dbo.sp_serveroption @server=N'LinkServerName', @optname=N'query timeout', @optvalue=N'0'
GO

EXEC master.dbo.sp_serveroption @server=N'LinkServerName', @optname=N'use remote collation', @optvalue=N'true'
g9ma01 2010-03-09
  • 打赏
  • 举报
回复
自己顶,直到问题解决。。。。。。。。。。。。。。。。。。。
dawugui 2010-03-08
  • 打赏
  • 举报
回复
在SQL SERVER 20000中访问Oracle数据库服务器的几种方法

1.通过行集函数opendatasource
要求:本地安装Oracle客户端
select * from opendatasource('MSDAORA', 'Data Source=XST4;User ID=manager;Password=sjpsjsjs')..MISD.PBCATCOL
其中,MSDAORA是OLEDB FOR Oracle的驱动,

注意:用户名和表名一定要大小,服务器和用户名之间是两个点;
例如:
select top 10 * from opendatasource('MSDAORA', 'Data Source=HZTEST;User ID=osstest;Password=a1234')..OSSTEST.SUBSCRIBER

本地Oracle客户端配置文件中内容如下:
HZTEST =
(DESCRIPTION =
(ADDRESS_LIST =
(ADDRESS = (PROTOCOL = TCP)(HOST = 132.149.7.19)(PORT = 1521))
)
(CONNECT_DATA =
(SID = test)
)
)

2. 使用MS SQL的openrowset函数
select A.* from openrowset('MSDAORA','XST4';'manager';'sjpsjsjs', 'MISD.PBCATCOL') as A
order by A.ID
使用这种方式一定要用别名才行

3.使用ODBC方式
select A.* from openrowset('MSDAORA','XST4_ODBC';'manager';'sjpsjsjs', 'MISD.PBCATCOL') as A order by A.ID
XST4_ODBC是ODBC数据源

4.使用链接服务器方式
EXEC SP_ADDLINKEDSERVER
@server='mylinkedserver', --链接服务器名称
@srvproduct='Oracle', --固定
@provider='MSDAORA', --固定
@datasrc='XST4' --Oracle本地服务名


该文章转载自德仔工作室:http://www.dezai.cn/article_show.asp?ArticleID=17285
g9ma01 2010-03-08
  • 打赏
  • 举报
回复
急啊!在线等ing,请各位大侠帮忙

22,209

社区成员

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

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