摘自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_
go
/*
用戶名和表名ORACLEUSERID
AREA一定要大寫
否則將會得到如下錯誤信息
服務器: 消息
級別
狀態
行
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
Level
State
Line
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集成驗證
將會得到如下錯誤信息
服務器: 消息
級別
狀態
行
OLE DB 提供程序
MSDAORA
報錯
驗證失敗
[OLE/DB provider returned message: ORA
: 不支持默認用戶名特性
登錄被拒絕]
OLE DB 錯誤跟蹤[OLE/DB Provider
MSDAORA
IDBInitialize::Initialize returned
x
e
d: 驗證失敗
]
英文為提示為
Server: Msg
Level
State
Line
OLE DB provider
MSDAORA
reported an error
Authentication failed
[OLE/DB provider returned message: ORA
: default username feature not supported; logon denied]
OLE DB error trace [OLE/DB Provider
MSDAORA
IDBInitialize::Initialize returned
x
e
d: Authentication failed
]
*/
From:http://tw.wingwit.com/Article/program/Oracle/201311/17640.html