在圖1中選中“鏈接服務器”,右鍵選擇“新建鏈接服務器”,如圖2,配置相關參數。
2、配置相關參數在“常規”選項中,填寫“鏈接服務器名稱”,訪問接口選中
“ Microsoft OLE DB Provider for Oracle”項。其中產品名稱、數據源、訪問接口字符串請填寫配置的Oracle客戶端在本地配置的net服務名。如圖3所示。
在“安全性”項中,選中使用此安全上下文建立連接,填寫遠程登錄用戶和密碼,即登錄遠程Oracle服務器的用戶和密碼。如圖4所示。
3、異構數據庫訪問語句格式比如我們建立了鏈接服務器ORADBCONN,而Oracle中在HRSOFT用戶下面建立了表WEBUSER,那么我們的SQL語句就是:
--清空Oracle表中的數據
DELETE FROM ORADBCONN..HRSOFT.WEBUSER
--將SQLServer中的數據寫到Oracle中
INSERT into ORADBCONN.. HRSOFT. WEBUSER
SELECT * FROM WEBUSER
如果報告成功,那么我們的數據就已經寫入到Oracle中了。
用SELECT * FROM ORADBCONN..HRSOFT.WEBUSER
查看Oracle數據庫中是否已經有數據了。
4、鏈接服務器應用A、查詢Oracle數據表方式一(這種方式,當Oracle與SQLServer的數據類型不一致時經常報錯,且速度稍慢):
select * from [LINK2ORACLE]..[ORACLE_USER_NAME].TABLE_NAME;
我在執行該語句經常報類似錯誤信息:鏈接服務器 "LINK2ORACLE" 的 OLE DB 訪問接口 "MSDAORA" 為列提供的元數據不一致。對象 ""CMCC"."OS2_GIS_CELL"" 的列 "ISOPENED" (編譯時序號為 20)在編譯時有 130 的 "DBTYPE",但在運行時有 5。
B、查詢Oracle數據表方式二(經試驗,這種方式使用起來很順暢,不報錯,且速度幾乎和在Oralce中一樣快):
select * from openquery(LINK2ORACLE,'select * from OracleUserName.TableName')
您可以把openquery()當成表來使用。
C、舉個例子(將Oralce用戶HRSOFT下的用戶表WEBUSER導入到SQLServer2005數據庫中):
select * into OS_GIS_WEBUSER from openquery(LINK2ORACLE,'select * from HRSOFT. WEBUSER)
D、更便捷的方式:通過創建同義詞進行便捷查詢:
CREATE SYNONYM OS_GIS_CELL FOR [ORACLELK]..[CMCC].OS_GIS_CELL;
select * from os_gis_cell;
select * from os_gis_cell a where a.CellName is null;
注意:涉及 Oracle 部分的 SQL 語句,尤其是 [ORACLELINK]..[ORACLE_USER_NAME].TABLE_NAME 一定要大寫,否則會報類似錯誤:
消息 7314,級別 16,狀態 1,第 1 行
鏈接服務器 "ORACLELK" 的 OLE DB 訪問接口 "MSDAORA" 不包含表 ""CMCC"."OS2_gis_CELL""。該表不存在,或者當前用戶沒有訪問該表的權限。
配置 主站蜘蛛池模板: 佛冈县| 方山县| 巴林左旗| 洪泽县| 海丰县| 琼海市| 吴桥县| 育儿| 东源县| 龙里县| 海伦市| 台中市| 清徐县| 巍山| 卢龙县| 舟曲县| 大新县| 沂源县| 怀集县| 临邑县| 丽水市| 灵石县| 剑川县| 临颍县| 西吉县| 洪湖市| 平山县| 兴安县| 尼勒克县| 项城市| 孟州市| 姚安县| 丹棱县| 阿拉善左旗| 大埔区| 福州市| 南木林县| 菏泽市| 双流县| 登封市| 嘉祥县|