之前我发过一个帖,虽然有一些提示,但我还是成功不了,所以这次出高分求解.环境
-------------------------------------------------------------
若A电脑配置为: 
OS:Ubuntu Server 8.04.1 
IP:192.168.0.2 
Computer Name:Prod 
Oracle SSID:XE 
SYS Password: dbpw B电脑配置为: 
OS:win2k3 
IP:192.168.0.3 
Computer Name:Test 
Oracle SSID:XE 
SYS Password: dbpw -------------------------------------------------------------
要求:
从B电脑上的Oracle Xe复制某些表的记录到A电脑的Oracle XE中.若我提供的信息不够清楚,请提示.

解决方案 »

  1.   

    在a电脑建立个dblink到b电脑
    然后
    insert into 目标表
    select 数据 
    from 源表@dblink
      

  2.   

    这个简单啊,在a电脑上配置好tnsnames.ora,链接到b电脑的sid是:B_xe,链接到A电脑的sid是A_XE,
    a电脑的oracle用户执行(需要修改对于要copy数据的用户名和密码):
    SQL> copy from user/pw@B_XE to user/pw@A_XE append tableName using select * from tableName;
      

  3.   

    经测试2楼的比较好,不用建立dblink,真方便,嘿嘿学了一招
    thx
      

  4.   


    我这里的修改数据类型为 replace,而我查看了 sql 21日通,好像没发现这条命令.
      

  5.   

    dblink 的通用性强点吧你可以直接查询另一个数据库的内容
      

  6.   


    我修改tnsnames.ora也不会 :(以下是B电脑上的tnsnames.ora
    XE =
      (DESCRIPTION =
        (ADDRESS = (PROTOCOL = TCP)(HOST = Test)(PORT = 1521))
        (CONNECT_DATA =
          (SERVER = DEDICATED)
          (SERVICE_NAME = XE)
        )
      )...而我发现A电脑上的tnsnames.ora也是一样的XE =
      (DESCRIPTION =
        (ADDRESS = (PROTOCOL = TCP)(HOST = Prod)(PORT = 1521))
        (CONNECT_DATA =
          (SERVER = DEDICATED)
          (SERVICE_NAME = XE)
        )
      )...那我要如何修改呢?
      

  7.   

    a,b电脑的都可以改成如下(host文件中需要能解析test和prod,否则改成ip):
    B_XE =
      (DESCRIPTION =
        (ADDRESS = (PROTOCOL = TCP)(HOST = Test)(PORT = 1521))
        (CONNECT_DATA =
          (SERVER = DEDICATED)
          (SERVICE_NAME = XE)
        )
      )A_XE =
      (DESCRIPTION =
        (ADDRESS = (PROTOCOL = TCP)(HOST = Prod)(PORT = 1521))
        (CONNECT_DATA =
          (SERVER = DEDICATED)
          (SERVICE_NAME = XE)
        )
      )注:
    copy from user/pw@B_XE to user/pw@A_XE append tableName using select * from tableName; 中的append可以使用insert,create,replace
      

  8.   

    在a电脑上加一段B=
      (DESCRIPTION =
        (ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.0.3 
    )(PORT = 1521))
        (CONNECT_DATA =
          (SERVER = DEDICATED)
          (SERVICE_NAME = XE)
        )
      )或者B=
      (DESCRIPTION =
        (ADDRESS = (PROTOCOL = TCP)(HOST = TEST)(PORT = 1521))
        (CONNECT_DATA =
          (SERVER = DEDICATED)
          (SERVICE_NAME = XE)
        )
      )明显两段有区别的嘛