请参考.  
 
                     --建立ORACLE到SQL  SERVER的分布式--  
1、安装  Microsoft  Data  Access  Components  (MDAC)SDK  ODBC  driver  
 
2、test  whether  CATHS  has  run.connect  to  the  Oracle  server    
     as  schema  "SYSTEM"  and  do  "DESCRIBE  SYS.HS_FDS_CLASS".    
       If  it  does  not  exist,  connect  as  SYS  (or  internal)  and  run  
     the  CATHS  script.  (ORACLE_HOME\RDBMS\ADMIN\CATHS.SQL)  
 
3、建立  SQL  SERVER  数据源  
           TEST_SQLSERVER  
 
4、配置tnsnames.ora.  (ORACLE_HOME\NETWORK\ADMIN)  
     TEST_SQLSERVER  =    
           (DESCRIPTION=  
               (ADDRESS=  
                     (PROTOCOL=tcp)  
                     (HOST=<IP地址>)                      
                     (PORT=1521)                        
               )      
               (CONNECT_DATA=  
                     (SID=TEST_SQLSERVER)  
               )  
               (HS=)  
           )  
 
5、配置listener.ora.  (ORACLE_HOME\NETWORK\ADMIN)  
     (SID_DESC=  
           (SID_NAME=TEST_SQLSERVER)  
           (ORACLE_HOME=D:\Oracle\iSuites)    
           (PROGRAM=hsodbc)  
     )  
 
6、重启ORACLE监听.  
     CMD  
     LSNRCTL  STOP  
     LSNRCTL  START  
     LSNRCTL  STATUS  
 
7、添加网关配置文件.  (ORACLE_HOME\HS\ADMIN)  
     文件名为:initTEST_SQLSERVER.ora  
     文件内容:  
     #  
     #  HS  init  parameters  
     #  
     HS_FDS_CONNECT_INFO  =  TEST_SQLSERVER  
     HS_FDS_TRACE_LEVEL  =  0  
     #HS_FDS_TRACE_FILE_NAME  =  TEST_SQLSERVER.trc  
 
     #  
     #  Environment  variables  required  for  the  non-Oracle  system  
     #  
     #set  <envvar>=<value>  
 
8、进入ORACLE  SQL*PLUS,建立数据库链.  
     CREATE  DATABASE  LINK  TOSQL  USING  'TEST_SQLSERVER';  
创建好数据库链,就可以通过触发器来实现了

解决方案 »

  1.   

    to :wanghai :
    谢谢你的解答。你的方法我还没试成功。但从你的方法看应该是在ORACLE中做出发器来改变SQL Server中的字段了。是吗?另外,这个问题实际上不光设及到ORACLE和SQL Server之间的同步,还有许多种类数据库之间的同步问题,如与FOXBASE ,DBASE,ACCESS等,我想问一下,有通用的解决方法吗?或者现在是否有这样的中间件?
      

  2.   

    用sql server的dts package 让它定时去执行。
      

  3.   

    在精华区有我的一个贴子专门讨论ORACLE到SQL SERVER的分布式的问题,使用ORACLE的HS服务(NOT A REAL SERVICE IN WIN32 ENVIRMENT)我们可以建立从ORACLE到所有支持ODBC的DATABASE的CONNECTION.从这个角度出发,您所提到的 "许多种类数据库之间的同步问题,如与FOXBASE ,DBASE,ACCESS等" 是不成问题的.关键是配置好ODBC及ORACLE的参数文件.
    至于您提到的数据库同步问题,有很多贴子已经在讨论了,在这里就不再废话了.