在sql2005中,设置oracle链接服务器,查询表出现如下问题:
消息 7320,级别 16,状态 2,第 1 行
无法对链接服务器 "ORCL" 的 OLE DB 访问接口 "OraOLEDB.Oracle" 执行查询"SELECT * FROM USER.TB"。
请问如何解决。
------解决方案--------------------
其他语句能执行吗
------解决方案--------------------
確定oracle能訪問?
------解决方案--------------------
我这样设置,我在我的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语句
------解决方案--------------------
不好意思,少贴了一部分,现在加上:
--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