在sql2005中,设置oracle链接服务器,查询表出现:无法对链接服务器 "ORCL" 的 OLE DB 访问接口 "OraOLEDB.Oracle“

aaa6263 2013-11-28 10:37:40
在sql2005中,设置oracle链接服务器,查询表出现如下问题:

消息 7320,级别 16,状态 2,第 1 行
无法对链接服务器 "ORCL" 的 OLE DB 访问接口 "OraOLEDB.Oracle" 执行查询"SELECT * FROM USER.TB"。

请问如何解决。
...全文
451 4 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
LongRui888 2013-11-28
  • 打赏
  • 举报
回复
不好意思,少贴了一部分,现在加上:
--2、链接服务器为Oracle,使用oracle的oledb库MSDAORA
--2.1.1为建立链接服务器
EXEC sp_addlinkedserver 
	@server = 'OracleLinkedServer',    --要创建的链接服务器名称                
	@srvproduct = 'Oracle',            --产品名称
	@provider = 'MSDAORA',             --OLE DB 字符  
	@datasrc = 'orcl'                  --数据源
 
 
--2.1.2为创建连接服务器登陆
EXEC sp_addlinkedsrvlogin 
	@rmtsrvname = 'OracleLinkedServer',  --链接服务器名称
	@useself = 'false', 
	@locallogin = NULL,
	@rmtuser = 'scott',                  --Oracle服务器的登陆用户名 
	@rmtpassword = 'tiger'               --Oracle服务器的登陆密码 



--2.2为设置链接服务器属性
exec sp_serveroption @server='OracleLinkedServer',
                     @optname = 'rpc',      --从给定的服务器启动rpc
                     @optvalue ='true'      --这样可以调用远程的存储过程

exec sp_serveroption @server='OracleLinkedServer',
                     @optname = 'rpc out',  --对给定的服务器启动rpc 
                     @optvalue ='true'      --在远程执行DDL语句


--2.3为在远程服务器上执行DDL语句新建表,用oracle的方式书写语句
exec('create table SCOTT.EMPXX(iddd int)') at OracleLinkedServer


--2.4用openrowset函数,把oracle的数据直接新建表的同时插入数据
select * 
INTO EMP_X 
from openrowset('MSDAORA','orcl';'scott';'tiger',SCOTT.EMP)

select * 
INTO EMP_X 
from openrowset('MSDAORA','orcl';'scott';'tiger','select * from SCOTT.EMP')


--2.5为opendatasource函数,查询一下oracle中的数据
select * 
from 
opendatasource('MSDAORA','Data Source=orcl;
                          User ID=scott;
                          password=tiger')..SCOTT.EMP

LongRui888 2013-11-28
  • 打赏
  • 举报
回复
我这样设置,我在我的sql server,就可以直接操作我本地的oracle的:
--2.1.2为创建连接服务器登陆
EXEC sp_addlinkedsrvlogin 
	@rmtsrvname = 'OracleLinkedServer',  --链接服务器名称
	@useself = 'false', 
	@locallogin = NULL,
	@rmtuser = 'scott',                  --Oracle服务器的登陆用户名 
	@rmtpassword = 'tiger'               --Oracle服务器的登陆密码 



--2.2为设置链接服务器属性
exec sp_serveroption @server='OracleLinkedServer',
                     @optname = 'rpc',      --从给定的服务器启动rpc
                     @optvalue ='true'      --这样可以调用远程的存储过程

exec sp_serveroption @server='OracleLinkedServer',
                     @optname = 'rpc out',  --对给定的服务器启动rpc 
                     @optvalue ='true'      --在远程执行DDL语句

小魚人 2013-11-28
  • 打赏
  • 举报
回复
確定oracle能訪問?
LongRui888 2013-11-28
  • 打赏
  • 举报
回复
其他语句能执行吗

27,581

社区成员

发帖
与我相关
我的任务
社区描述
MS-SQL Server 应用实例
社区管理员
  • 应用实例社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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