declare
 i number :=0;
 id number :=1;
 n varchar2(20) :='test';
 
begin
  while i<10 loop
    i :=i+1;
    id :=id+1;
    insert into p_user values(id,n);
    commit;
  end loop;
end;
=====================
我建立了一个P_USER_SEQ序列.能不能在PLSQL中将ID定义成序列?如何完成?

解决方案 »

  1.   

    可以 
    select P_USER_SEQ.nextval into ID from dual;
    写在循环体里面就可以了
      

  2.   

    这样写就好:insert into p_user
      select P_USER_SEQ.nextval,  'test'
        from dual
     connect by rownum < 10;   
      

  3.   

    insert into p_user values(P_USER_SEQ.nextval,n);
      

  4.   

    insert into p_user values(P_USER_SEQ.nextval,n);
      

  5.   


    SQL> edi
    已写入 file afiedt.buf  1  declare
      2   i number :=0;
      3   id number :=1;
      4   n varchar2(20) :='test';
      5  begin
      6    while i<10 loop
      7    select sql1.nextval into id from dual;
      8    insert into tt values(id,n);
      9    i :=i+1;
     10    commit;
     11    end loop;
     12* end;
    SQL> /PL/SQL 过程已成功完成。SQL> select * from tt;        NO TNAME
    ---------- --------------------
             1 test
             2 test
             3 test
             4 test
             5 test
             6 test
             7 test
             8 test
             9 test
            10 test已选择10行。
      

  6.   

    7    select sql1.nextval into id from dual;
    着句话啥意思?
      

  7.   

    先定义一个序列:
    create sequence 你的表名
    minvalue 1
    maxvalue 99999999
    start with 1
    increment by 1
    cache 25
    cycle;
    然后再
      select 你的表名.nextval into id from dual;
      insert into tt values(id,n);
      

  8.   

    select sql1.nextval into id from dual;
    这个的意思是 将序列sql1的下一个值放到id这个变量中;
      

  9.   


    就是把序列的值赋给id,在把id的值插入你的表中的值