我的機器上安裝了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監聽器;
8、 啟動Oracle和監聽器;
9、 創建dblink,注意用戶名和密碼一定要加上”,因為Oracle是不分大小寫的,所有的小寫都會轉成大寫,而Sybase是區分大小寫的;
create database link HSODBC
connect to “sa” identifIEd by “Sybase”
using 'hsodbc';
10、 執行查詢語句 :select * from “ts”@hsodbc;這裡表名和字段如果是小寫的也要加上“;
11、