我的機(jī)器上安裝了oracle服務(wù)端(oracle 9i),機(jī)器名為:huanghua,另外一臺(tái)機(jī)器上安裝了sybase的服務(wù)器端(sbyase12.5),ip地址為:192.168.0.111,sybase端口號(hào):5000,我想在oracle中直接建立dblink訪問sybase中的數(shù)據(jù),以下是我測試的步驟; 1、 安裝sybase client端;l 2、 在dsEdit中添加服務(wù),服務(wù)名為:sybase,使用tcp連接,端口號(hào):5000;
 測試連接成功; 3、 在控制面板\管理工具中打開“數(shù)據(jù)源(ODBC)”,選擇“系統(tǒng)DSN”,注意這里不能選擇“用戶DSN”,點(diǎn)擊“添加”按鈕,選擇“Sybase system”,點(diǎn)擊“完成”,在general頁上輸入“odbc 的別名”,sybase的服務(wù)名和數(shù)據(jù)庫的名稱;ds的name設(shè)為hsodbc,請一定要用這個(gè)名字,不要問為什么,這么用就行了; 
4、 在oracle的安裝目錄下找到 hs\admin\目錄,打開inithsodbc.ora文件,一般oracle9i中都有這個(gè)文件,設(shè)置參數(shù): # This is a sample agent init file that contains the HS parameters that are # needed for an ODBC Agent. # # HS init parameters # HS_FDS_CONNECT_INFO = hsodbc HS_FDS_TRACE_LEVEL = 0
# # Environment variables required for the non-Oracle system # #set <envvar>=<value> 以上是文件的內(nèi)容,其中hsodbc就是odbc連接sybase的別名; 5、 在oracle的安裝目錄下找到 network\admin \目錄,打開listener.ora文件,在文件中添加 SID_LIST_LISTENER = (SID_LIST = (SID_DESC = (SID_NAME = PLSExtProc) (ORACLE_HOME = E:\oracle\ora92) (PROGRAM = extproc) ) (SID_DESC = (GLOBAL_DBNAME = myserver) (ORACLE_HOME = E:\oracle\ora92) (SID_NAME = myserver) ) (SID_DESC = (SID_NAME = hsodbc) (ORACLE_HOME = E:\oracle\ora92) (PROGRAM = hsodbc) ) ) 其中紅色的為你所添加的內(nèi)容,SID_NAME和PROGRAM都設(shè)為hsodbc;
6、 打開tnsnames.ora文件在其中添加: hsodbc = (DESCRIPTION = (ADDRESS_LIST = (ADDRESS = (PROTOCOL = TCP)(HOST = huanghua)(PORT = 1521)) ) (CONNECT_DATA = (SID = hsodbc)) (HS= OK) ) ) 其中huanghua是我的機(jī)器名;注意以上的=號(hào)后面的名稱前要留下一個(gè)空格,這個(gè)我也不知道是什么原因;
7、 這里重啟動(dòng)一下你的機(jī)器;有資料說重啟動(dòng)一下oracle監(jiān)聽器; 8、 啟動(dòng)oracle和監(jiān)聽器; 9、 創(chuàng)建dblink,注意用戶名和密碼一定要加上”,因?yàn)閛racle是不分大小寫的,所有的小寫都會(huì)轉(zhuǎn)成大寫,而sybase是區(qū)分大小寫的; create database link HSODBC connect to “sa” identified by “sybase” using 'hsodbc'; 10、 執(zhí)行查詢語句 :select * from “ts”@hsodbc;這里表名和字段如果是小寫的也要加上“;
|