分享

Oracle通过ODBC透明网关连接Sybase

 云淡风轻轻123 2010-09-16
我的机器上安装了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,请一定要用这个名字,不要问为什么,这么用就行了;
 Oracle通过ODBC透明网关连接Sybase

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

    本站是提供个人知识管理的网络存储空间,所有内容均由用户发布,不代表本站观点。请注意甄别内容中的联系方式、诱导购买等信息,谨防诈骗。如发现有害或侵权内容,请点击一键举报。
    转藏 分享 献花(0

    0条评论

    发表

    请遵守用户 评论公约

    类似文章 更多