版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡介
本文格式為Word版,下載可任意編輯——SQLServer鏈接服務(wù)器訪問OracleSQLServer鏈接服務(wù)器訪問Oracle
一、測試環(huán)境說明
操作系統(tǒng):WindowsServer2023R264位
數(shù)據(jù)庫版本:SQLServer2023R264位和OracleDatabase11g第2版(11.2.0.1.0)及相應(yīng)的客戶端版本:Oracle11gclient64位。
其中OracleDatabase11g安裝在一臺(tái)電腦,另一臺(tái)安裝SQLServer2023R264位和Oracle11gclient64位。
二、創(chuàng)立SQLServer鏈接服務(wù)
首先SQLServer鏈接Oracle可以通過兩個(gè)訪問接口:“MSDAORA〞和“OraOLEDB.Oracle〞。默認(rèn)狀態(tài)下,SQLServer2023R264位安裝后在服務(wù)器對象->鏈接服務(wù)器->訪問接口下并沒有“MSDAORA〞和“OraOLEDB.Oracle〞接口。
安裝“MSDAORA〞訪問接口需要下載OracleDataAccessComponents(ODAC)forWindows的相應(yīng)64位版本。安裝后重新啟動(dòng)服務(wù)器即可以看到“MSDAORA〞接口。由于此接口不支持分布式事務(wù),因此不做過多的描述。
安裝“OraOLEDB.Oracle〞訪問接口需要下載Oracle11gclient64位。具體安裝過程如下:1)下載后解壓zip文件到文件夾,點(diǎn)擊setup.exe,彈出如下界面:
直接點(diǎn)[是]。
2)彈出如下界面:
選擇[定制]選項(xiàng)。點(diǎn)擊下一步,彈出如下界面:
直接點(diǎn)擊下一步,彈出如下界面:
選擇軟件安裝的位置后點(diǎn)擊下一步,彈出如下界面:
在可用產(chǎn)品組件窗口點(diǎn)擊[全選]后直接點(diǎn)擊下一步,彈出如下窗口:
在調(diào)度程序代理主機(jī)名中輸入本機(jī)的主機(jī)名。點(diǎn)擊下一步,彈出如下界面:
在OracleServicesforMTS中配置端口,這里直接使用默認(rèn)端口,點(diǎn)擊下一步:OracleServicesforMicrosoftTransactionServer
OracleServicesforMTS允許客戶在MTS協(xié)調(diào)事務(wù)中使用Oracle數(shù)據(jù)庫作為資源管理器,從而提供了Oracle解決方案和MTS之間的強(qiáng)大集成。OracleServicesforMTS用作Oracle數(shù)據(jù)庫到MTS分布式交易協(xié)同器的代理。因此,這些服務(wù)負(fù)責(zé)提供與MTS的客戶端連接合并,并允許COM組件通過Oracle參與MTS交易。此外,OracleServicesforMTS也可以操作運(yùn)行在任何操作系統(tǒng)上的Oracle數(shù)據(jù)庫(假使服務(wù)本身在Windows上運(yùn)行)。
直接點(diǎn)擊完成,開始安裝客戶端程序。3)配置注冊表
開啟運(yùn)行,輸入regedit,按回車。
找到注冊表項(xiàng)HKEY_LOCAL_MACHINE\\SOFTWARE\\Microsoft\\MSDTC\\MTxOCIOracleOciLib值改為oci.dll、OracleSqlLib值改為orasql11.dll、
OracleXaLib值改為oraclient11.dll。
HKEY_LOCAL_MACHINE\\SOFTWARE\\Wow6432Node\\Microsoft\\MSDTC\\MTxOCI對它做同樣的修改。
4)配置完成后重新啟動(dòng)計(jì)算機(jī),繼續(xù)配置
在開始->所有程序->Oracle-OraClient11g_home1->配置和移植工具下找到NetManager點(diǎn)擊開啟,彈出如下窗口:
點(diǎn)擊服務(wù)命名,選擇編輯–>創(chuàng)立彈出網(wǎng)絡(luò)服務(wù)名向?qū)В?/p>
在網(wǎng)絡(luò)服務(wù)名中輸入要連接的Oracle實(shí)例名。點(diǎn)擊下一步:
默認(rèn)選擇[TCP/IP(Internet協(xié)議)]點(diǎn)擊下一步:
輸入要連接的主機(jī)名,端口號(hào)為1521,Oracle的默認(rèn)端口,點(diǎn)擊下一步:
輸入服務(wù)名(關(guān)于Oracle服務(wù)名與實(shí)例名,請參考Oracle服務(wù)名與實(shí)例名.doc),點(diǎn)擊下一步:
點(diǎn)擊測試中的[測試]按鈕,進(jìn)行服務(wù)器連接測試,注意要輸入正確的用戶名和密碼,可以直接點(diǎn)擊完成跳過測試步驟。
1、“MSDAORA〞訪問接口是由MicrosoftOLEDBProviderforOracle提供的,建議不使用此接口進(jìn)行鏈接。通過該接口建立的鏈接服務(wù)器在進(jìn)行查詢Oracle表時(shí)會(huì)報(bào)錯(cuò),在帶數(shù)據(jù)類型CLOB、BLOB字段時(shí)。
錯(cuò)誤提醒如下:
“鏈接服務(wù)器\的OLEDB訪問接口\返回了消息\發(fā)生了一個(gè)Oracle錯(cuò)誤,但無法從Oracle中檢索錯(cuò)誤信息。\。鏈接服務(wù)器\的OLEDB訪問接口\返回了消息\數(shù)據(jù)類型不被支持。\
2、“OraOLEDB.Oracle〞訪問接口是由Oracle的OracleProviderforOLEDB驅(qū)動(dòng)提供的。它解決了兩個(gè)數(shù)據(jù)庫類型不一致的問題。而且假使需要使用分布式事務(wù),必需使用它來創(chuàng)立鏈接服務(wù)器。
在創(chuàng)立之前,在SQLServer中,鏈接服務(wù)器->訪問接口->OraOLEDB.Oracle->右鍵屬性,選中“允許進(jìn)程內(nèi)〞。
這一步是使我們選擇的OraOLEDB.Oracle接口開啟執(zhí)行操作。如未設(shè)置會(huì)報(bào)如下錯(cuò)誤:“無法初始化鏈接服務(wù)器\的OLEDB訪問接口\的數(shù)據(jù)源對象\
使用OracleProviderforOLEDB驅(qū)動(dòng)創(chuàng)立sqlserver鏈接服務(wù)器的代碼:
--建立數(shù)據(jù)庫鏈接服務(wù)器
EXECSp_addlinkedserver
@server=N'ORACLEDB',--要?jiǎng)?chuàng)立的鏈接服務(wù)器別名@srvproduct=N'Oracle',--產(chǎn)品名稱
@provider=N'OraOLEDB.Oracle',--OLEDB驅(qū)動(dòng)名稱@datasrc=N'ORCL'--數(shù)據(jù)源
Oracle->ora11g->network->admin->tnsnames.ora查看
EXECSp_addlinkedsrvlogin'ORACLEDB',--已建立的鏈接服務(wù)器名'false',--固定*/
NULL,--為每個(gè)登陸SQLSERVER的用戶使用此鏈接服務(wù)器,則寫用戶名*/'scott',--帳號(hào)(Oracle)'tiger'--密碼
EXECSp_serveroption'ORACLEDB','rpcout','true'
EXECSp_serveroption'ORACLEDB','rpc','true'
--這兩個(gè)是開啟rpc,rpcout的,默認(rèn)為False,開啟后可以支持遠(yuǎn)程更改分布式事務(wù)。(如有分布式事務(wù)操作必需要設(shè)置)
這樣我們就建好了鏈接服務(wù)器,已經(jīng)可以通過它對Oracle數(shù)據(jù)庫進(jìn)行查詢。
三、鏈接服務(wù)器的查詢
查詢的兩種方式:
1)鏈接服務(wù)器別名..Oracle名.oracle表,注意使用大寫;
SELECT*FROM[ORACLEDB]..[SCOTT].[EMP]
這種方式可以進(jìn)行操作,優(yōu)點(diǎn)是使用簡單,一目了然,而缺點(diǎn)是性能太差,查詢大數(shù)據(jù)量表很慢。效率太差。
2)使用OPENQUERY;
對給定的鏈接服務(wù)器執(zhí)行指定的傳遞查詢。該服務(wù)器是OLEDB數(shù)據(jù)源。OPENQUERY可以在查詢的FROM子句中引用,就象它是一個(gè)表名。OPENQUERY也可以作為INSERT、UPDATE或DELETE語句的目標(biāo)表進(jìn)行引用。但這要取決于OLEDB訪問接口的功能。盡管查詢可能返回多個(gè)結(jié)果集,但是OPENQUERY只返回第一個(gè)。例如:
A.執(zhí)行SELECT傳遞查詢
SELECT*
FROMOPENQUERY(ORACLEDB,'SELECT*FROMSCOTT.EMP')
B.執(zhí)行UPDATE傳遞查詢
UPDATEOPENQUERY(ORACLEDB,'SELECTENAMEFROMSCOTT.EMPWHEREEMPNO=7369')SETENAME='SMITH';
C.執(zhí)行INSERT傳遞查詢
INSERTOPENQUERY(ORACLEDB,'SELECT*FROMSCOTT.EMP')VALUES(8888,'JIAO','MANAGER',NULL,'1990-12-1700:00:00.0000000',5000.00,5000.00,10);
D.執(zhí)行DELETE傳遞查詢
DELETEOPENQUERY(ORACLEDB,'SELECTENAMEFROMSCOTT.EMPWHEREEMPNO=8888');
查詢方式速度幾乎和在Oralce中一樣快。并且我們可以將openquery()當(dāng)做表來用。
四、SQLServer鏈接服務(wù)器實(shí)現(xiàn)分布式查詢
啟用條件:
1、必需安裝OracleServicesforMicrosoftTransactionServer;
2、必需用OracleProviderforOLEDB驅(qū)動(dòng)提供的OraOLEDB.Oracle訪問接口來創(chuàng)立鏈接服務(wù);3、必需雙方啟動(dòng)并配置MSDTC服務(wù),關(guān)于MSDTC服務(wù)的配置請參考:SQLServer分布式事務(wù)配置.doc。
例如:
SETXACT_ABORTONBEGINTRA
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲(chǔ)空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 養(yǎng)老院老人康復(fù)訓(xùn)練指導(dǎo)制度
- 《服務(wù)成就價(jià)值》課件
- 技術(shù)合同范本
- 2024年塔吊司機(jī)安全操作培訓(xùn)與勞動(dòng)權(quán)益保障協(xié)議3篇
- 6 《哈姆萊特(節(jié)選)》(學(xué)案)-教案課件-部編高中語文必修下冊
- 2024年生日蛋糕定制與航空旅行禮品合作合同2篇
- 《脊柱區(qū)局部解剖學(xué)》課件
- 2025年湖北貨運(yùn)上崗證模擬考試題
- 2024年水路貨物運(yùn)輸節(jié)能減排管理細(xì)則合同3篇
- 2025年太原貨運(yùn)從業(yè)資格考試模擬考試題目及答案
- 電子測量技術(shù)基礎(chǔ)課后答案
- 大興調(diào)查研究研討發(fā)言材料學(xué)習(xí)心得體會(huì)中心組3篇
- 培訓(xùn)學(xué)?;馂?zāi)應(yīng)急預(yù)案
- 面試評分表完整版
- 微機(jī)原理與接口技術(shù)(樓順天編著)課后習(xí)題答案
- 公司電梯安全總監(jiān)、電梯安全員崗位職責(zé)
- 大宗氣二次配施工方案
- 室內(nèi)采暖管道安裝施工工藝標(biāo)準(zhǔn)
- 冀少版小學(xué)六年級音樂上冊教案
- 江蘇省人民醫(yī)院改建一臺(tái)γ刀放射治療項(xiàng)目環(huán)評報(bào)告
- 研究開發(fā)費(fèi)用自查報(bào)告
評論
0/150
提交評論