我用8.1.7连接SQL SERVER 2000
我是这样做的:
1、安装 Microsoft Data Access Components (MDAC)SDK ODBC driver
2、建立 SQL SERVER 数据源
test连接上我的test数据库
3、配置tnsnames.ora. (ORACLE_HOME\NETWORK\ADMIN)
   test= 
      (DESCRIPTION=
        (ADDRESS=
           (PROTOCOL=tcp)
           (HOST=<IP地址>)          
           (PORT=1521)           
        )  
        (CONNECT_DATA=
           (SID=test)
        )
        (HS=)
      )
4、配置listener.ora. (ORACLE_HOME\NETWORK\ADMIN)
   (SID_DESC=
      (SID_NAME=test)
      (ORACLE_HOME=c:\Oracle\iSuites) 
      (PROGRAM=hsodbc)
   )
5、重启ORACLE监听.
   CMD
   LSNRCTL STOP
   LSNRCTL START
   LSNRCTL STATUS
6、添加网关配置文件. (ORACLE_HOME\HS\ADMIN)
   文件名为:inittest.ora
   文件内容:
   #
   # HS init parameters
   #
   HS_FDS_CONNECT_INFO = test
   HS_FDS_TRACE_LEVEL = 0
   #
   # Environment variables required for the non-Oracle system
   #
   #set <envvar>=<value>
7、进入ORACLE SQL*PLUS,建立数据库链.
  CREATE DATABASE LINK TOSQL USING 'test';
8、测试
  SELECT * FROM TABLE1@TOSQL;
SELECT * FROM TABLE1@TOSQL
                   *
ERROR 位于第1行:
ORA-28509: 无法创建与非 Oracle 系统的连接
ORA-02063: 紧接着line(源于TOSQL)
ORA-12564: TNS: 拒绝连接请大家帮我看一下,着急!
我以前就是这样做的,可是现在不知道什么原因建不出来了!

解决方案 »

  1.   

    如果你在近期使用了net8 config:使用文本编辑工具打开tnsnames.ora,确信存在
    (HS=)
    一行。
      

  2.   

    什么意思?
    我的TNSNAMES.ORA里面包含:test= 
          (DESCRIPTION=
            (ADDRESS=
               (PROTOCOL=tcp)
               (HOST=<IP地址>)          
               (PORT=1521)           
            )  
            (CONNECT_DATA=
               (SID=test)
            )
            (HS=)
          )
      

  3.   

    http://expert.csdn.net/Expert/topic/1922/1922039.xml?temp=.6668817
      

  4.   

    我的意思是说你再检查一下TNSNAMES.ORA,看看有没有(HS=)这样一行
      

  5.   

    我觉得还是SQL Server连接Oracle方便,配置很简单