我不大懂存储过程的,想批量插入一堆数据到某个表里,主键pid是自增长的,sequence是s_personinfo ,表是tbpersoninfo表Insert into TBPERSONINFO (IPERSONINFOID,VCPERSONCARD,VCPASSWORD,VCPERSONNAME,VCPERSIONSEX) values (s_personinfo.nextval,'33000021','123456','小明','男',);    //这个语句想循环500遍.

解决方案 »

  1.   

    declare 
      begin 
       for c in (select s_personinfo.nextval as seq from dual) loop 
           Insert into TBPERSONINFO (IPERSONINFOID,VCPERSONCARD,VCPASSWORD,VCPERSONNAME,VCPERSIONSEX) values(c.seq ,'33000021','123456','小明','男',); 
           if c.seq = c.seq+500 then 
              return ;
          end if;
      end loop;
     end;
      

  2.   

    CREATE  OR  REPLACE  PROCEDURE  pro_1
    IS
    v_counter NUMBER(3) := 1;
    Begin
       LOOP
      Insert into TBPERSONINFO (IPERSONINFOID,VCPERSONCARD,VCPASSWORD,VCPERSONNAME,VCPERSIONSEX) values (s_personinfo.nextval,'33000021','123456','小明','男',);  
        EXIT WHEN v_counter > 500;
      END LOOP;
      
    End;
      

  3.   

    为什么我执行,没有循环...
    sequence的值现为5000...
      

  4.   

    不是...
    declare 
      begin 
      for c in (select s_personinfo.nextval as seq from dual) loop 
          Insert into TBPERSONINFO (IPERSONINFOID,VCPERSONCARD,VCPASSWORD,VCPERSONNAME,VCPERSIONSEX) values(c.seq ,'33000021','123456','小明','男',); 
     Insert into TBPERSONINFO (IPERSONINFOID,VCPERSONCARD,VCPASSWORD,VCPERSONNAME,VCPERSIONSEX) values(c.seq ,'33000021','123456','小明','男',); //插入两条数据,该怎么办呢...循环控制最好不要用此序列吧      if c.seq = c.seq+500 then 
              return ; 
          end if; 
      end loop; 
    end; 
      

  5.   

    declare
            maxrecords constant int:=1000;
            i int :=1;
        begin
            for i in 1..maxrecords loop
              insert into UserInfo(UserID,login,password,firstName,lastName,ISADMINISTRATOR)
               values(SYS_GUID(),TO_CHAR('9999'+i),'password','fristname','lastName','0');
            end loop;
        dbms_output.put_line(' 成功录入数据! ');
        commit;
        end; 
      

  6.   

    有没有不使用存储过程的办法,直接在一条SQL语句中支持循环的语法,好像原来听别人说过的啊。