使用sp_addlinkedserver 与 sp_addlinkersrvlogin从oracle查询数据

本文介绍如何通过三步配置实现SQL Server与Oracle数据库之间的跨库连接。具体步骤包括:使用`sp_addlinkedserver`创建链接服务器、通过`sp_addlinkedsrvlogin`设置登录凭证,以及查询Oracle数据库中的数据。

摘自fengfangfang专栏

代码只有三句:
sp_addlinkedserver 'oraclelink', 'Oracle''MSDAORA', 'oraclenetname'
/*
其中oraclelink是要在sql中使用的名称,oraclenetname是oracle网络服务名称。
*/
go
sp_addlinkedsrvlogin 'oraclelink', 'false', 'sa', 'oracleuserid', 'oraclepwd'
/*
其中oraclelink是要在sql中使用的名称,是在sp_addlinkedserver定义的;
sa是sql中的用户,
oracleuserid是oracle数据库的登录名称,oraclepwd是oracleuserid的密码。
*/
go
 
SELECT * FROM oraclelink..ORACLEUSERID.AREA AREA_1
go
/*
用户名和表名ORACLEUSERID.AREA一定要大写,否则将会得到如下错误信息:
 
服务器: 消息7314,级别16,状态1,行1
OLE DB 提供程序'oraclelink' 不包含表'"oracleuserid"."AREA"'。该表可能不存在,或当前用户没有使用该表的权限。
OLE DB 错误跟踪[Non-interface error:  OLE DB provider does not contain the table: ProviderName='oraclelink', TableName='"oracleuserid"."AREA"']。
 
英文为提示为:
Server: Msg 7314, Level 16, State 1, Line 0
OLE DB provider 'oraclelink' does not contain table '"oracleuserid"."AREA"'.  The table either does not exist or the current user does not have permissions on that table.
OLE DB error trace [Non-interface error:  OLE DB provider does not contain the table: ProviderName='oraclelink', TableName='"oracleuserid"."AREA"'].
 
 
当前使用的用户,也就是使用企业管理器或查询分析器连接SQL Server的用户一定是sp_addlinkedsrvlogin中设置的用户,上面使用的是sa
如果使用windows集成验证,将会得到如下错误信息:
 
服务器: 消息7399,级别16,状态1,行1
OLE DB 提供程序'MSDAORA' 报错。验证失败。
[OLE/DB provider returned message: ORA-01004: 不支持默认用户名特性;登录被拒绝]
OLE DB 错误跟踪[OLE/DB Provider 'MSDAORA' IDBInitialize::Initialize returned 0x80040e4d:  验证失败。]。
 
英文为提示为:
 
Server: Msg 7399, Level 16, State 1, Line 1
OLE DB provider 'MSDAORA' reported an error. Authentication failed.
[OLE/DB provider returned message: ORA-01004: default username feature not supported; logon denied]
OLE DB error trace [OLE/DB Provider 'MSDAORA' IDBInitialize::Initialize returned 0x80040e4d: Authentication failed.].
 
*/

 

Trackback: http://tb.blog.csdn.net/TrackBack.aspx?PostId=993882

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值