以文本方式查看主題 - 昂捷論壇 (http://www.yzsenyi.com/bbs/index.asp) -- □-技術(shù)研討會 (http://www.yzsenyi.com/bbs/list.asp?boardid=36) ---- [分享]SQL_Server2008鏈接Oracle操作手冊 (http://www.yzsenyi.com/bbs/dispbbs.asp?boardid=36&id=8156) |
-- 作者:zlg169 -- 發(fā)布時(shí)間:2011/10/11 10:51:57 -- [分享]SQL_Server2008鏈接Oracle操作手冊 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ù)庫,同時(shí)也支持更高版本的Oracle數(shù)據(jù)庫,Oracle Provider for OLE DB(OraOLEDB.Oracle)訪問接口在安裝完Oracle數(shù)據(jù)庫客戶端之后就可以在SQL Server 配置管理器的鏈接服務(wù)器訪問接口里面看到。 ![]() ![]() 因此,在鏈接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)下載,下載時(shí)需要注冊 http://www.oracle.com/us/solutions/midsize/112010-win64soft-094461.html, 比如“win64_11gR2_client”。 2、安裝oracle 11 的客戶端 下載完成后需要解壓進(jìn)行安裝,可以根據(jù)需求去安裝,一般以管理員方式安裝, ![]() ![]() 里面會包括用于配置客戶端設(shè)置的工具、sqlplus等一系列的工具。 ![]() ![]() 3、配置Oracle11客戶端 3.1、手工配置 安裝成功后,在Oracle 客戶端安裝目錄下如: F:\\app\\Administrator\\product\\11.2.0\\client_2\\network\\admin創(chuàng)建一個(gè)這樣的文件 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)行查看: 首先,在開始運(yùn)行中鍵入cmd進(jìn)入命令行,敲入telnet 后面跟Linux服務(wù)器地址(例如telnet 210.6.1.106)如下圖(注意:Win7和Win2008默認(rèn)是關(guān)閉telnet功能的,可以通過控制面板——程序和功能——打開或關(guān)閉Windows功能來開啟telnet功能,如下圖 ![]() ![]() ) ![]() ![]() 然后敲回車,鍵入Lunix服務(wù)器的用戶名和密碼,如下圖 ![]() ![]() 鍵入用戶名和密碼,后敲回車便進(jìn)入了Lunix服務(wù)器的命令行管理界面,如下圖 ![]() ![]() 然后敲入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)記 ![]() ![]() 3.2通過net manager進(jìn)行配置 打開net manager工具如下圖,里面有概要文件、服務(wù)命名和監(jiān)聽程序,概要文件里方法選取TNSNAMES即可,監(jiān)聽程序是在Oracle服務(wù)器端配置的,客戶端不需要配置; ![]() ![]() 由于論壇限制圖片太多,因此轉(zhuǎn)二樓(抱歉哈) [此貼子已經(jīng)被作者于2011-10-14 9:53:17編輯過]
|
-- 作者:zlg169 -- 發(fā)布時(shí)間:2011/10/11 10:59:33 -- 著重需要對服務(wù)命名進(jìn)行配置,點(diǎn)擊服務(wù)命名后,點(diǎn)擊左邊的加號,進(jìn)入配置界面,如下圖 ![]() ![]() 輸入網(wǎng)絡(luò)服務(wù)名,比如上面的ORA8或者TEST均可,只是一個(gè)名稱,然后下一步,如下圖 ![]() ![]() 選擇TCP/IP協(xié)議,下一步,如下圖 ![]() ![]() 主機(jī)名為Oracle數(shù)據(jù)庫的服務(wù)器IP地址,端口號是Oracle數(shù)據(jù)庫的端口號,然后下一步如下圖 ![]() ![]() 服務(wù)名即為我們上述通過Linux命令行查看的Oracle監(jiān)聽服務(wù)名,這里為ora8XDB,輸入之后,點(diǎn)擊下一步,如下圖進(jìn)行測試 ![]() ![]() 點(diǎn)擊測試,輸入Oracle數(shù)據(jù)庫用戶名和密碼進(jìn)行測試,如下圖 ![]() ![]() 點(diǎn)擊關(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)建一個(gè)名稱為jf的鏈接服務(wù)器,數(shù)據(jù)訪問接口選擇Oracle Provider for OLE DB,產(chǎn)品名稱為Oracle,數(shù)據(jù)源要訪問的oracle服務(wù)器上的要訪問的那個(gè)數(shù)據(jù)庫,然后輸入訪問oracle的用戶名和密碼,根據(jù)個(gè)人情況更改,更改執(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\', --本地?cái)?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中聲明表的時(shí)候表明用了引號,此處的表明必須和oracle中一致,否則全部使用大寫,不然會提示找不到表。 2、使用PLSQL語法: select *from openquery(jf,\'select *from jrmd_join.WFG001\') 注意:第二種訪問方式比第一種約快50%;第二種訪問方式跟直連ORACLE的速度相當(dāng)。 因此,使用那種語法顯而易見了。 |
-- 作者:wangxiaoxiao -- 發(fā)布時(shí)間:2011/10/11 14:43:38 -- 不錯 |
-- 作者:wangxiaoxiao -- 發(fā)布時(shí)間:2011/10/14 15:21:41 -- 補(bǔ)充:和版本有關(guān) “允許進(jìn)程序內(nèi)”打上勾 才可以用。 |