我的機器上安裝了oracle服務端(oracle 9i),機器名為:huanghua,另外一臺機器上安裝了sybase的服務器端(sbyase12.5),ip地址為:192.168.0.111,sybase端口號:5000,我想在oracle中直接建立dblink訪問sybase中的數據,以下是我測試的步驟; 1、 安裝sybase client端;l 2、 在dsEdit中添加服務,服務名為:sybase,使用tcp連接,端口號:5000;
 測試連接成功; 3、 在控制面板\管理工具中打開“數據源(ODBC)”,選擇“系統DSN”,注意這里不能選擇“用戶DSN”,點擊“添加”按鈕,選擇“Sybase system”,點擊“完成”,在general頁上輸入“odbc 的別名”,sybase的服務名和數據庫的名稱;ds的name設為hsodbc,請一定要用這個名字,不要問為什么,這么用就行了; 
4、 在oracle的安裝目錄下找到 hs\admin\目錄,打開inithsodbc.ora文件,一般oracle9i中都有這個文件,設置參數: # 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> 以上是文件的內容,其中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) ) ) 其中紅色的為你所添加的內容,SID_NAME和PROGRAM都設為hsodbc;
6、 打開tnsnames.ora文件在其中添加: hsodbc = (DESCRIPTION = (ADDRESS_LIST = (ADDRESS = (PROTOCOL = TCP)(HOST = huanghua)(PORT = 1521)) ) (CONNECT_DATA = (SID = hsodbc)) (HS= OK) ) ) 其中huanghua是我的機器名;注意以上的=號后面的名稱前要留下一個空格,這個我也不知道是什么原因;
7、 這里重啟動一下你的機器;有資料說重啟動一下oracle監(jiān)聽器; 8、 啟動oracle和監(jiān)聽器; 9、 創(chuàng)建dblink,注意用戶名和密碼一定要加上”,因為oracle是不分大小寫的,所有的小寫都會轉成大寫,而sybase是區(qū)分大小寫的; create database link HSODBC connect to “sa” identified by “sybase” using 'hsodbc'; 10、 執(zhí)行查詢語句 :select * from “ts”@hsodbc;這里表名和字段如果是小寫的也要加上“;
|