我想在本机上得到和远程数据库里指定表一模一样的表,每个月复制一次,请问如何实现? 第一次求助啊,好心人帮帮我

解决方案 »

  1.   

    建个db link写个定时器每月同步一下就行了
      

  2.   

    谢谢sky_810613 ,我刚搞数据库,不太懂。在试dblink。我和同事的oracle数据库名都是intehel,配置如下。我的:
    INTEHEL =
      (DESCRIPTION =
        (ADDRESS_LIST =
          (ADDRESS = (PROTOCOL = TCP)(HOST = 127.0.0.1)(PORT = 1521))
        )
        (CONNECT_DATA =
          (SERVICE_NAME = intehel)
        )
      )同事的:
    LHJ=
      (DESCRIPTION =
        (ADDRESS_LIST =
          (ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.1.11)(PORT = 1521))
        )
        (CONNECT_DATA =
          (SERVICE_NAME = intehel)
        )
      )创建dblink:
    CREATE PUBLIC DATABASE LINK DBLINK_LHJ
    CONNECT TO intehel IDENTIFIED BY intehelpass
    USING 'lhj';                        //这里测试:
    select * from calltype@DBLINK_LHJ;  //calltype是表名不很清楚using时用哪个东西?
    用using 'lhj',       lhj是网络服务名,不成功,提示:TNS超时了。
    用using 'intehel',  intehel是服务名,也是我们两个人的数据库名,不成功。
    提示:数据库链接DBLINK_LHJ.US.ORACLE.COM与INTEHEL.US.ORACLE.COM相连结。
    意思是我们的服务名冲突了吧?怎么解决?
      

  3.   

    用create tableA as select * from tableB  where 1=1    带数据
                                                   where  1!=1 不带数据,只有表结构
      

  4.   

    buffon1260 谢谢你。  你写的语句只能复制本机上的表吧。。我要复制远程数据库的表啊?要咋整?oracle有没有不用配置,直接在语句里指定远程数据库IP,用户名密码。一运行就直接到到一张一模一样的表的?我看到sql server可以这样做:exec   sp_addlinkedserver   '123.1.12.123'   
    exec   sp_addlinkedsrvlogin   '123.1.12.123','false',   NULL,   'sa',   'pw'   
    insert   into   表名   select   *   from   [123.1.12.123].库名.dbo.表名出自:http://topic.csdn.net/t/20061025/14/5108148.html