各位老师好:    我写的这个过程是想在passwd这个表插入1000个随机数但是每次只会插一条数据不明白 还望讲解谢谢额
declare
  cursor cur_phone is
   select count(c_passwd) as v_cc from passwd;--看是否到1000了
  v_content varchar2(255);
  v_id      float := 1;
begin
  for data in cur_phone loop
   
  --  select HIBERNATE_SEQUENCE.Nextval into v_id from dual;
    if data.v_cc <1000 then
    
      insert into passwd
        (c_passwd)
        select abs(dbms_random.random) from dual;
    
    end if;
  end loop;
  --commit;
end;

解决方案 »

  1.   

    select abs(dbms_random.random) from dual;这个的结果只有一条,当然只插入一条了!
      

  2.   

    select lpad(abs(dbms_random.random),10,0) from dual CONNECT BY ROWNUM<1000
      

  3.   

    抛砖先……
      for data in cur_phone ..1000 loop  
       insert into passwd
      (c_passwd)
      select abs(dbms_random.random) from dual;
      end loop;
      
    另外,select count(c_passwd) into v_cc from passwd;--as改为into
      

  4.   

    谢谢。。还没消化SQL codeselect abs(dbms_random.random) from dual;这个的结果只有一条,当然只插入一条了!
    、、对对
      

  5.   

    你语法写错了
    for data in cur_phone loop
    应该改成
    for data in 1..cur_phone loop