declare :i NUMBER 
        set :i = 1
        while :i < 30001
        begin
            INSERT INTO TB_STUDENT
            (NAME,SEX,AGE,ADDRESS)
                 VALUES('names', 'descriiption',:i * RANNOM(),'BEIJING')
            set :i = :i +1
        end我想批量在数据库中插入30000条数据,其中age字段想产生一个随机数。
但是不知道哪里有错,请指教。

解决方案 »

  1.   

    declare 
    i NUMBER;
    BEGIN
    FOR I IN 1..30001 LOOP
    INSERT INTO TB_STUDENT(NAME,SEX,AGE,ADDRESS)VALUES('names', 'descriiption',dbms_random.value(1,5000),'BEIJING');
    END LOOP;
    end;
      

  2.   

    declare 
    i NUMBER ;
       
           begin
               i:=1; 
             loop 
         
                INSERT INTO TB_STUDENT
                (NAME,SEX,AGE,ADDRESS)
                     VALUES('names', 'dtion',i * round(dbms_random.value(1,5000)),'BENG');
                     commit;
                 i := i +1;
                 exit  when i>3000;
                 end loop;
           
            end;
      

  3.   

    多谢楼上的,我才接触oracle以前做sqlserver的,
    因为这么小的一个问题浪费您的时间,真是抱歉。
    多谢