1樓
zlg169 發(fā)表于:2011/10/11 10:51:57
SQL_Server2008鏈接Oracle操作手冊
走了好多彎路,不過終于成功了,現(xiàn)將正確的步驟整理如下,供大家閱覽:
一、 目前SQL Server 2008 連接Oracle有兩種訪問接口,分別是Microsoft ODBC for Oracle(MSDAORA)和Oracle Provider for OLE DB(OraOLEDB.Oracle),這兩種訪問接口有本質(zhì)的不同,Microsoft ODBC for Oracle是微軟提供的只支持32位的SQL Server數(shù)據(jù)庫,而且只支持到oracle 8i;Oracle Provider for OLE DB是甲骨文提供的支持64位的SQL Server數(shù)據(jù)庫,同時也支持更高版本的Oracle數(shù)據(jù)庫,Oracle Provider for OLE DB(OraOLEDB.Oracle)訪問接口在安裝完Oracle數(shù)據(jù)庫客戶端之后就可以在SQL Server 配置管理器的鏈接服務(wù)器訪問接口里面看到。

此主題相關(guān)圖片如下:1.png

因此,在鏈接SQL Server 2008和Oracle之前先確定SQL Server 2008的版本(32位or 64位)。注:這里以64位SQL Server 2008為例。
二、 安裝oracle客戶端軟件:
1、下載oracle 11 的客戶端
需要在安裝有SQL_Server2008數(shù)據(jù)庫的服務(wù)器上,安裝oracle客戶端,可以去Oracle 官網(wǎng)下載,下載時需要注冊
http://www.oracle.com/us/solutions/midsize/112010-win64soft-094461.html,
比如“win64_11gR2_client”。
2、安裝oracle 11 的客戶端
下載完成后需要解壓進(jìn)行安裝,可以根據(jù)需求去安裝,一般以管理員方式安裝,

此主題相關(guān)圖片如下:2.png

里面會包括用于配置客戶端設(shè)置的工具、sqlplus等一系列的工具。

此主題相關(guān)圖片如下:3.png

3、配置Oracle11客戶端
3.1、手工配置
安裝成功后,在Oracle 客戶端安裝目錄下如:
F:\app\Administrator\product\11.2.0\client_2\network\admin創(chuàng)建一個這樣的文件
tnsnames.ora ,在里面配置如下服務(wù)器的相關(guān)信息,比如
ORA8 =
(DESCRIPTION =
(ADDRESS_LIST =
(ADDRESS = (PROTOCOL = TCP)(HOST = 210.6.1.106)(PORT = 1521))
)
(CONNECT_DATA =
(SERVICE_NAME = ora8XDB)
)
)
ORA8為服務(wù)命名,HOST為服務(wù)器的IP地址,PORT為Oracle數(shù)據(jù)庫的端口,SERVICE_NAME為Oracle數(shù)據(jù)庫的監(jiān)聽服務(wù)名,監(jiān)聽服務(wù)名和Oracle數(shù)據(jù)庫名略有不同,可以通過命令去查看,以下以O(shè)racle數(shù)據(jù)庫安裝Linux服務(wù)器為例進(jìn)行查看:
首先,在開始運行中鍵入cmd進(jìn)入命令行,敲入telnet 后面跟Linux服務(wù)器地址(例如telnet 210.6.1.106)如下圖(注意:Win7和Win2008默認(rèn)是關(guān)閉telnet功能的,可以通過控制面板——程序和功能——打開或關(guān)閉Windows功能來開啟telnet功能,如下圖

此主題相關(guān)圖片如下:4.png

)

此主題相關(guān)圖片如下:5.png

然后敲回車,鍵入Lunix服務(wù)器的用戶名和密碼,如下圖

此主題相關(guān)圖片如下:6.png

鍵入用戶名和密碼,后敲回車便進(jìn)入了Lunix服務(wù)器的命令行管理界面,如下圖

此主題相關(guān)圖片如下:7.png

然后敲入Lunix服務(wù)器下命令行查看Oracle數(shù)據(jù)庫監(jiān)聽服務(wù)的命令lsnrctl [start/stop/status],顧名思義start是開始監(jiān)聽服務(wù)的,stop是停止監(jiān)聽服務(wù)的,而這里我們只需要查看監(jiān)聽服務(wù)的狀態(tài),因此鍵入lsnrctl status就可以查看到Oracle數(shù)據(jù)庫監(jiān)聽服務(wù)名,如下圖紅色標(biāo)記

此主題相關(guān)圖片如下:8.png

3.2通過net manager進(jìn)行配置
打開net manager工具如下圖,里面有概要文件、服務(wù)命名和監(jiān)聽程序,概要文件里方法選取TNSNAMES即可,監(jiān)聽程序是在Oracle服務(wù)器端配置的,客戶端不需要配置;

此主題相關(guān)圖片如下:9.png

由于論壇限制圖片太多,因此轉(zhuǎn)二樓(抱歉哈)
[此貼子已經(jīng)被作者于2011-10-14 9:53:17編輯過]
2樓
zlg169 發(fā)表于:2011/10/11 10:59:33
著重需要對服務(wù)命名進(jìn)行配置,點擊服務(wù)命名后,點擊左邊的加號,進(jìn)入配置界面,如下圖

此主題相關(guān)圖片如下:10.png

輸入網(wǎng)絡(luò)服務(wù)名,比如上面的ORA8或者TEST均可,只是一個名稱,然后下一步,如下圖

此主題相關(guān)圖片如下:11.png

選擇TCP/IP協(xié)議,下一步,如下圖

此主題相關(guān)圖片如下:12.png

主機名為Oracle數(shù)據(jù)庫的服務(wù)器IP地址,端口號是Oracle數(shù)據(jù)庫的端口號,然后下一步如下圖

此主題相關(guān)圖片如下:13.png

服務(wù)名即為我們上述通過Linux命令行查看的Oracle監(jiān)聽服務(wù)名,這里為ora8XDB,輸入之后,點擊下一步,如下圖進(jìn)行測試

此主題相關(guān)圖片如下:14.png

點擊測試,輸入Oracle數(shù)據(jù)庫用戶名和密碼進(jìn)行測試,如下圖

此主題相關(guān)圖片如下:15.png

點擊關(guān)閉后,完成即可,便可在目錄如
F:\app\Administrator\product\11.2.0\client_2\network\admin中查看tnsnames.ora文件。
三、 創(chuàng)建鏈接服務(wù)器
SQL_Server2008鏈接Oracle必須要在Oracle客戶端配置tnsnames.ora文件,下來創(chuàng)建一個名稱為jf的鏈接服務(wù)器,數(shù)據(jù)訪問接口選擇Oracle Provider for OLE DB,產(chǎn)品名稱為Oracle,數(shù)據(jù)源要訪問的oracle服務(wù)器上的要訪問的那個數(shù)據(jù)庫,然后輸入訪問oracle的用戶名和密碼,根據(jù)個人情況更改,更改執(zhí)行后便可測試
exec sp_addlinkedserver @server='jf', --鏈接服務(wù)器名稱
@srvproduct='Oracle', --數(shù)據(jù)庫產(chǎn)品名稱
@provider='OraOLEDB.Oracle', --數(shù)據(jù)訪問接口
@datasrc='ORA8' --要訪問的數(shù)據(jù)庫名稱
go
exec sp_addlinkedsrvlogin @rmtsrvname = 'jf', --鏈接服務(wù)器名稱
@useself = 'false',
@locallogin = 'sa', --本地數(shù)據(jù)庫用戶名
@rmtuser = 'jrmd_join', --Oracle數(shù)據(jù)庫用戶名
@rmtpassword = 'jrmd_join' --Oracle數(shù)據(jù)庫密碼
四、 通過鏈接服務(wù)器訪問Oracle數(shù)據(jù)庫
SQL的寫法有兩種
1、 使用T-SQL語法:
SELECT * FROM JF..JRMD_JOIN.WFG001
注意:在這種方式下取數(shù),如果在oracle中聲明表的時候表明用了引號,此處的表明必須和oracle中一致,否則全部使用大寫,不然會提示找不到表。
2、使用PLSQL語法:
select *from openquery(jf,'select *from jrmd_join.WFG001')
注意:第二種訪問方式比第一種約快50%;第二種訪問方式跟直連ORACLE的速度相當(dāng)。
因此,使用那種語法顯而易見了。
3樓
wangxiaoxiao 發(fā)表于:2011/10/11 14:43:38
4樓
wangxiaoxiao 發(fā)表于:2011/10/14 15:21:41