以下是我的配置及错误1、$ORACLE_HOME\tg4msql\admin\initzjbTest.ora
HS_FDS_CONNECT_INFO="192.168.8.28;DATABASE=zjbTest"
HS_FDS_TRACE_LEVEL=OFF
HS_FDS_RECOVERY_ACCOUNT=RECOVER
HS_FDS_RECOVERY_PWD=RECOVER
2、$ORACLE_HOME\network\admin\listener.ora
SID_LIST_LISTENER =
  (SID_LIST =
    ...
    (SID_DESC =     
      (SID_NAME = zjbTest)
      (ORACLE_HOME = E:\oracle\ora90)
      (PROGRAM = tg4msql)
    )
  )
3、$ORACLE_HOME\network\admin\tnsnames.ora
sql =
  (DESCRIPTION =
    (ADDRESS_LIST =
      (ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.8.33)(PORT = 1521))
    )
    (CONNECT_DATA = (SID = zjbtest)) 
    (HS=OK) 
  )
4、CREATE DBLINK
CREATE PUBLIC DATABASE LINK TOSQL  CONNECT TO ZJB
    IDENTIFIED BY ****    USING SQL 
5、重启数据库,重启监听服务
6、select * from bma@tosql where rownum<10;ERROR 位于第 1 行:
ORA-28500: 连接 ORACLE 到非 Oracle 系统时返回此信息:
[Transparent gateway for MSSQL]找不到指定的模块。 ; at FIND_IMAGE_SYMBOL
Cannot connect to shareable hsdbsql. Using dummy functions
PATH =
E:\oracle\ora90\bin;E:\oracle\ora90/bin;E:\oracle\ora90\Apache\Perl\5.00503\bin\
mswin32-x86;C:\Program
Files\Oracle\jre\1.1.8\bin;C:\WINDOWS\system32;C:\WINDOWS;C:\WINDOWS\System32\Wb
em
Initialization function MSSQL not found
ORA-02063: 紧接着7 lines(源于TOSQL)

解决方案 »

  1.   

    肯定是在SQLserver里面出现了错误,你应该在SQL Server Enterprise Manager里面安全性-->登录 中右键单击登录,新建登录,ORACLE(6、select * from bma@tosql where rownum<10;)访问的bma是登录名,而不是你在某个数据库中新建的用户名
      

  2.   

    bma是SQL SERVER下中zjbTest库下的表名,用户名是zjb,后我改成SA错误提示也一样的
      

  3.   

    如下操作试一下:
    1.用SQLPLUS 连接你的SQL SERVER, 是否可以查询得到数据。(你可以用cmd> sqlplus ...)
    2.用SQLPLUS 连接你的ORACLE,是否可以登录,
    3.建立一个监听程序到SQL SERVER的listener,看看是否可以建立监听,测试连接。
    4,建立数据库连接create database link....创建的database名是建立的监听实例名。
      

  4.   


       你的作为gateway的服务器需要安装SQL SERVER 2000 选择 仅连接选项
    安装完毕后重新启动gateway服务器
       原因是由于oracle9i 需要使用sqlserver2000的 网络链接库文件ntwdblib.dll
    等等
       你可以先检查一下你的system32下面有没有该文件,没有的话基本上可以肯定是这个原因了
       oracle9以后的版本未测试