使用PL/SQL插入大量数据

来源:互联网 发布:2017最新网络热门话题 编辑:程序博客网 时间:2024/05/25 23:57

数据时为了测试使用的,测试大量数据下操作系统,所以只是要求大量数据就可以了。

使用的是FOR循环。(遇到的问题。1表空间不足:加表空间,2序列冲突:当前数据的序列和序列冲突了,数据的序列>序列  如当前数据序列为10,序列为9,那你下一条数据就是10,那就冲突了。),3:速度慢。如果你是根据当前数据库的一条数据去生成数据,那查询条件最好用主键。)

declare 
  v_i number(10); --外层循环
  v_j number(10); --内层循环
begin 
  v_i := 1; 
  loop 
    v_j := 1; 
    loop 
         INSERT INTO ET_TASK
      (ETTA_ID,
       REC_STATUS,
       CREATOR,
       CREATE_TIME,
       MODIFIER,
       MODIFY_TIME,
       REC_VER,
       ETTA_NO,
       ETTA_ORDER_NO,
       ETTA_SO_NO,
       ETTA_DO_NO,
       ETTA_CUSTOM_EBCU_NO,
       ETTA_CUSTOM_EBCU_NAME_CN,
       ETTA_ETVE_CARD,
       ETTA_TASK_NO,
       ETTA_ETOR_FROM_EBRG_CODE,
       ETTA_ETOR_FROM_EBRG_ADDRESS,
       ETTA_ETOR_TO_EBRG_CODE,
       ETTA_ETOR_TO_EBRG_ADDRESS)
    VALUES
      (SEQ_ET_TASK.NEXTVAL,
       0,
       '3142',
       sysdate,
       '3142',
       sysdate,
       1,
       'TO201512251886',
       'LO201512257876',
       'TMS010',
       'DO201512251297',
       'E0106002',
       '广东美的厨房电器制造有限公司-海外营销公司',
       '粤A72319',
       '',
       'DZ002218',
       '广东顺德广乐路68号樱花工业园水家电仓库',
       'DZ002803',
       '曙光村四组'); 
        v_j := v_j + 1; 
        exit when v_j > 500000; 
    end loop;
    commit;
    v_i := v_i + 1; 
    exit when v_i>100;  
  end loop; 
end; 

1 0
原创粉丝点击