数据抽取的时候
第一次抽取的数据量估计有上千万条
需要记录出错的数据
我写的存储过程效率有点慢
求高手指点
以下是我的思路:
 for cur in (select 字段名 from 表1) loop
              begin
               insert   into 表2(字段名)values(cur.字段名);
              end;
              exception
                --此处记录错误数据
 end loop;

解决方案 »

  1.   

    试试  insert into  table_name select value from tab_name
      

  2.   

    你批量插入完后再用MERGE INTO 进行比较,把错误数据找出来...
      

  3.   

    恩,执行insert into 表2(字段名)values(cur.字段名),改成
    execute immediate ‘insert into 表2(字段名)values(:1) ’ using cur.字段名;这样的效率会高一些。
      

  4.   

    那样可能会影响效率,占用太多回滚段吧,如果分段提交可写个变量 for rec in select_Sql loopv_count = v_count + 1;if v_count = 500 then
    commit;
    v_count := 0
    end if;
    end loop;
    commit;