insert into my.hw_test select * from my.hw_test@dblink;

解决方案 »

  1.   

    Connected to Oracle9i Enterprise Edition Release 9.2.0.6.0 
    Connected as testSQL> 
    SQL> create table TEST1
      2  (
      3    COL1 VARCHAR2(10),
      4    COL2 VARCHAR2(10)
      5  )
      6  /Table createdSQL> 
    SQL> create table TEST2
      2  (
      3    COL1 VARCHAR2(10),
      4    COL2 VARCHAR2(10)
      5  )
      6  /Table createdSQL> 
    SQL> create or replace procedure testp IS
      2  myrow TEST1%ROWTYPE;
      3  CURSOR cur1 IS SELECT * FROM test1;
      4  BEGIN
      5  
      6    FOR myrow IN cur1
      7    LOOP
      8     INSERT INTO test2 VALUES(myrow.col1,myrow.col2);
      9     END LOOP;
     10  end testp;
     11  /Procedure createdSQL> insert into test1 values('1','1');1 row insertedSQL> insert into test1 values('2','2');1 row insertedSQL> commit;Commit completeSQL> select * from test1;COL1       COL2
    ---------- ----------
    1          1
    2          2SQL> select * from test2;COL1       COL2
    ---------- ----------SQL> exec testp;PL/SQL procedure successfully completedSQL> commit;Commit completeSQL> select * from test2;COL1       COL2
    ---------- ----------
    1          1
    2          2SQL>
      

  2.   

    不明白楼主为什么要一个个读取并插入,如果插入到另一个库的表中,请使用dblinK!