最近要做一个接口,定时把SQL SERVER的数据搞到ORACLE
我想在ORACLE 里做一个JOB,然后让JOB定时触发,然后去读SQL SERVER里的一张表,怎么实现。请详细说出实现过程,最好给实际例子。THANKS!

解决方案 »

  1.   

    http://it.rising.com.cn/newSite/Channels/Safety/SysSafety/Safe_Database/200401/16-095413675.htm
      

  2.   

    如何在Oracle里设置访问SQL Server数据库?
    假设我们要在ORACLE里同时能访问SQL Server里默认的pubs数据库。 1、在安装了ORACLE9i Standard Edition或者ORACLE9i Enterprise Edition的windows机器上(IP:192.168.0.2), 产品要选了透明网关(Oracle Transparent Gateway)里访问Microsoft SQL Server数据库 $ORACLE9I_HOME\tg4msql\admin下新写initpubs.ora配置文件.
    initpubs.ora内容如下:
    HS_FDS_CONNECT_INFO="SERVER=SQLSERVER
    _HOSTNMAE;DATABASE=pubs"
    HS_DB_NAME=pubs
    HS_FDS_TRACE_LEVEL=OFF
    HS_FDS_RECOVERY_ACCOUNT=RECOVER
    HS_FDS_RECOVERY_PWD=RECOVER
    $ORACLE9I_HOME\network\admin 下listener.ora内容如下:
    LISTENER =
      (DESCRIPTION_LIST =
       (DESCRIPTION =
        (ADDRESS_LIST =
        (ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.0.2)(PORT = 1521))
      )
      )
      )SID_LIST_LISTENER =
      (SID_LIST =
      (SID_DESC =
      (GLOBAL_DBNAME = test9)
      (ORACLE_HOME = d:\oracle\ora92)
      (SID_NAME = test9)
     )
      (SID_DESC=
      (SID_NAME=pubs)
      (ORACLE_HOME=d:\Oracle\Ora92) 
      (PROGRAM=tg4msql)
      )
     )    重启动这台做gateway的windows机器上(IP:192.168.0.2)TNSListener服务.     (凡是按此步骤新增可访问的SQL Server数据库时,TNSListener服务都要重启动) 2、ORACLE8I,ORACLE9I的服务器端配置tnsnames.ora, 添加下面的内容: pubs =
      (DESCRIPTION =
      (ADDRESS_LIST =
        (ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.0.2)(PORT = 1521))
        )
        (CONNECT_DATA =
        (SID = pubs)
        )
        (HS = pubs) 
       )
       保存tnsnames.ora后,在命令行下
    tnsping pubs
     出现类似提示,即为成功 Attempting to contact (DESCRIPTION = (ADDRESS_LIST = (ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.0.2)
    (PORT = 1521))) (CONNECT_DATA = (SID = pubs)) (HS = pubs))
    OK(20毫秒)   
    设置数据库参数global_names=false。 设置global_names=false不要求建立的数据库链接和目的数据库的全局名称一致。global_names=true则要求, 多少有些不方便。 oracle9i和oracle8i都可以在DBA用户下用SQL命令改变global_names参数 alter system set global_names=false;
     建立公有的数据库链接: create public database link pubs 
    connect to testuser identified by testuser_pwd using 'pubs'; 
    访问SQL Server下数据库里的数据: select * from stores@pubs;
    ......  ...... 3、使用时的注意事项 ORACLE通过访问SQL Server的数据库链接时,用select * 的时候字段名是用双引号引起来的。 例如: create table stores as select * from stores@pubs;
    select zip from stores;
    ERROR 位于第 1 行:
    ORA-00904: 无效列名
    select "zip" from stores;
    zip
    -----
    98056
    92789
    96745
    98014
    90019
    89076
     
    已选择6行。 用SQL Navigator或Toad看从SQL Server转移到ORACLE里的表的建表语句为: CREATE TABLE stores
        ("stor_id"                      CHAR(4) NOT NULL,
        "stor_name"                    VARCHAR2(40),
        "stor_address"                 VARCHAR2(40),
        "city"                         VARCHAR2(20),
        "state"                        CHAR(2),
        "zip"                          CHAR(5))
      PCTFREE     10
      PCTUSED     40
      INITRANS    1
      MAXTRANS    255
      TABLESPACE  users
      STORAGE   (
        INITIAL     131072
        NEXT        131072
        PCTINCREASE 0
        MINEXTENTS  1
        MAXEXTENTS  2147483645
      )
    /
     
    总结: WINDOWS下ORACLE9i网关服务器在$ORACLE9I_HOME\tg4msql\admin目录下的initsqlserver_databaseid.ora WINDOWS下ORACLE9i网关服务器listener.ora里面 (SID_DESC=
           (SID_NAME=sqlserver_databaseid)
            (ORACLE_HOME=d:\Oracle\Ora92) 
            (PROGRAM=tg4msql)
        )
        UNIX或WINDOWS下ORACLE8I,ORACLE9I服务器tnsnames.ora里面
     northwind =
       (DESCRIPTION =
    (ADDRESS_LIST =
     (ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.0.2)(PORT = 1521))
         )
     (CONNECT_DATA =
     (SID = sqlserver_databaseid)
          )
     (HS = sqlserver_databaseid) 
           )
    sqlserver_databaseid一致才行.
      

  3.   

    楼上的大哥,忘了说了,我的ORACLE 是安装在solaris 9系统上的
    SQL SERVER 是WIN2000
    能实现吗? 怎么实现?
      

  4.   

    可以考虑在程序页面读取sqlserver中的数据,更新oracle表,然后定时执行页面程序
      

  5.   

    创立数据库的连接
    create public database link hq.acme.com
     using  'sales';查询
    select * from [email protected];
     
      

  6.   

    到itpub上查一下透明网关代理的文章!