假设表PROD_SERV只有一个字段serv_id,即PROD_SERV(serv_id varchar2(20))。
请编写一个PL/SQL块,向PROD_SERV表插入1到9000的数字,每插入50条记录提交一次。循环插入1到9000的数字我会,但,每插入50条记录提交一次怎样写

解决方案 »

  1.   


    -- 有多种写法,这里给你列出一个来
    Connected to Oracle Database 11g Enterprise Edition Release 11.2.0.1.0 
    Connected as oracle@ORALABSQL> 
    SQL> create table PROD_SERV(serv_id varchar2(20));
    Table created
    SQL> begin
      2      for n in 1..9000 loop
      3          insert into prod_serv values(n);
      4          if mod(n , 50) = 0 then
      5              commit;
      6          end if;
      7      end loop ;
      8  end ;
      9  /
    PL/SQL procedure successfully completed
    SQL> select count(*) as rscount from prod_serv ;
       RSCOUNT
    ----------
          9000
    SQL> drop table prod_serv purge ;
    Table droppedSQL> 
      

  2.   

    create table PROD_SERV(serv_id varchar2(20));
    begin
          for n in 1..9000 loop
              insert into prod_serv values(n);
             if mod(n , 50) = 0 then
                 commit;
              end if;
          end loop ;
       end ;
     
     select count(*) as rscount from prod_serv ;
       
     drop table prod_serv purge ;
      

  3.   

    oracle可以用commit命令提交,所以只要在循环中判断i取余50是否为0然后在commit就行了。
      

  4.   

    定义一个变量。写一个循环,到50 就清零然后COMMIT  
      

  5.   

    bulk collect ...  LIMIT 50