我想实现的是不同数据库中的表更新!现在我有两个数据库,SID A,SID B。
在数据库A中有张表TAB_A,在数据库B中有张表TAB_B,两张表结构完全相同,但数据不同,我现在希望做到的是能够将数据库A中的TAB_A中的数据复制到数据库B
中的TAB_B里,对TAB_B中的原有数据进行清除,使复制后TAB_B中的数据与TAB_A的数据完全一致。
请问该如何实现?

解决方案 »

  1.   

    创建数据库链结:create database link ...
    用copy命令:
    copy from username/password@dbname
    to username1/pw1@dbname1
    append(create/insert/replace) tablename(col1,col2...)
    using select....from ...;
    append:添加到表上,如果tablename表不存在,则建立此表
    create:如果tablename表存在,则出错
    insert:添加到表中,如果tablename表不存在,则出错
    replace:替换表中数据,如果tablename表不存在,则建立此表.
      

  2.   

    用一个存储过程来实现 :
      1) 数据库B中,建立连接数据库A的DBLINK_A;
      2)数据库B中,建立存储过程 
         create or replace procedure pCopy
         as 
         begin
            delete from TAB_B;
            insert into TAB_B( select * from TAB_A@DBLINK_A);
            commit;
         end;
      

  3.   

    请问lianhg(lianhg):
     
    如何进行第一步,在数据库B中,建立连接数据库A的DBLINK_A;
    在第二步中又如何引用 TAB_A@DBLINK_A应该怎么写?
      

  4.   

    我这边网络有问题,你在ORACLE 板块搜索DBLINK,就能找到答案了
      

  5.   

    创建语法:
    create database link linkname
    connect to user
    identified by usrpwd 
    using 'demona';其中
    --demona为用net8 easy config创建的连接字符串
    目的方数据库的init.ora文件中的global_names设为false
    重新启动数据库设置才能生效
    或者用sys用户执行
    alter system set global_names=false;
      

  6.   

    在sql*plus里面创建
    上面写的应该比较清楚了吧