我的机器上安装了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;这里表名和字段如果是小写的也要加上“;
|