標籤:
轉自太祖元年的:http://www.cnblogs.com/jirglt/archive/2012/06/10/2544025.html
參考:http://down.51cto.com/data/910072
SqlServer中建立Oracle串連伺服器
第一種:介面操作
(1)展開伺服器對象-->連結的伺服器-->右擊“建立連結的伺服器”
(2)輸入連結的伺服器的IP
(3)連結成功後
第二種:語句操作
註:需要提前安裝Oracle用戶端程式,重啟機器。(如果沒有Oracle用戶端程式,提示“未找到Oracle用戶端和網路組件”)
EXEC sp_addlinkedserver
@server=‘Province‘, --被訪問的伺服器別名
@srvproduct=‘ORACLE‘, --SqlServer預設不需要寫
@provider=‘MSDAORA‘, --不同的庫都是不一樣的,OLE DB字元
@datasrc=‘192.168.88.88/ORCL‘--要訪問的伺服器
GO
EXEC sp_addlinkedsrvlogin
@rmtsrvname=‘Province‘, --被訪問的伺服器別名
@useself=‘false‘, --固定這麼寫
@locallogin=‘sa‘, --本地操作應戶名
@rmtuser=‘kobe‘, --被訪問的伺服器使用者名稱
@rmtpassword=‘kobe123‘--被訪問的伺服器用密碼
GO
--參數解釋:
sp_addlinkedserver:建立一個連結的伺服器,使其允許對分布式的、針對 OLE DB 資料來源的異類查詢進行訪問。
sp_addlinkedsrvlogin:建立或更新本地 Microsoft® SQL Server™ 執行個體上的登入與連結的伺服器上遠程登入之間的映射。
現在測試一下,用帳號sa本地登入SqlServer,建立一個查詢,輸入
SELECT * FROM OPENQUERY(Province, ‘select * from t_base_school‘)
比如:
SELECT organization_id,organization_name FROM OPENQUERY(Province, ‘select * from t_base_organizationtree‘)
沒問題的話,就能查詢到資料了。
一些常用操作:
--查詢操作
SELECT * FROM OPENQUERY(Province, ‘select * from t_base_duty‘)
--刪除操作
DELETE FROM OPENQUERY(Province, ‘select * from t_base_duty‘)
--插入操作
INSERT INTO OPENQUERY (province,‘SELECT * FROM t_base_role‘) (role_id,role_name,bureautype_id,is_system,b_use,field_order,b_del,identity_id) VALUES (10,‘科比‘,7,1,0,1,0,2)
--更新操作
UPDATE OPENQUERY (province,‘SELECT * FROM t_base_role‘) SET role_name=‘科比‘ WHERE role_id=10
註:技巧(OPENQUERY(Province, ‘select * from t_base_duty‘) 看做是一張表)
SqlServer中建立Oracle串連伺服器