配置透明网关的步骤
前一段花了些时间配置 TRANSPARENT GATEWAY
现在把心得贴出来与大家共享我的OS是WIN2000  
ORACLE 9.0
SQLSERVER2000
HOSTNAME : SVR1
都使用 tcp/ip 默认端口
1: 安装 TRANSPARENT GATEWAY 选件(我安装的是FOR MSSQL)
   安装完成了以后有这样一个目录 oracle_home\ora90\tg4msql2: 配置 LISTENER.ORA
    (SID_DESC =
      (GLOBAL_DBNAME = tg4sql) # 可自己命名
      (PROGRAM = tg4msql)
      (SID_NAME = sql2000)  # SID 自己命名
      (ORACLE_HOME = D:\oracle\ora90)
    )3: 在 oracle_home\ora90\tg4msql\admin
   建文件 init<SID>.ora 由于LISTENER里定义SID为 sql2000
   因此文件名为:initsql2000.ora
   其中内容为:
   HS_FDS_CONNECT_INFO=svr1.master # svr1为SQL服务器名
   HS_FDS_TRACE_LEVEL=OFF
   HS_FDS_RECOVERY_ACCOUNT=RECOVER
   HS_FDS_RECOVERY_PWD=RECOVER4: 重启 DATABASE AND LISTENER5: 配置 tnsnames.ora
tg_sql = 
  (DESCRIPTION = 
    (ADDRESS_LIST = 
      (ADDRESS = (PROTOCOL = TCP)(HOST = SVR1)(PORT = 1521)) 
    ) 
    (CONNECT_DATA = 
      (SID = sql2000) 
    ) 
    (HS=OK) 
  ) 6: 建立 DATABASE LINK
CREATE PUBLIC DATABASE LINK DB_SQL
CONNECT TO SA IDENTIFIED BY PASSWORD
USING 'tg_sql'7: 完成,测试
  select * from t_test@db_sql8: 请注意使用 DBLINK 时,INIT.ORA中 GLOBAL_NAME 的设置,
  如果为 ture , 请使用DBLINK的全称,可在 all_db_links 中查到,
  如果为 FALSE, 不必使用全称,当出现 
  “ORA-02019:为找到远程数据库的连接说明”
  时,请使用全称,如:
  select * from t_test@db_sql.US.ORACLE.COM

解决方案 »

  1.   

    多谢楼上的回复,这是在oracle中建立访问SQLServer吧,我以前也做过,不是用的透明网关,基本上只能对表和视图操作。
    现在的问题是 是要建立MSSQL到Oracle的连接,因为我们的crm系统在MSSQL上,还有其他的任务运行着。
      

  2.   

    看上去不像删除时候的错误啊?是不是ORACLE里面自己有什么触发器之类的东西?导致 除数为   0 
      

  3.   

     看了,没有触发器,并且这个语句DELETE FROM OLAP.B_DIM_SUB_COMPANY这个语句放到oracle里面可以执行成功,无论里面有没有数据都可以执行,我的操作是把MSSQL数据表 更新到Oracle中,不知道是不是oracle的bug.
      

  4.   

    真晕,把oracle里面的表重新创建了一次 就可以了,还不知道问题在哪里,不过问题算是解决了。
      

  5.   

    我也遇到过这个问题。。sql2005访问oracle10.2.0.1,访问的是物化视图,重建下就好了,原因没找到,我关心的是这个问题会复发。。