PROCEDURE GENERATE_CDRRECORD_DATA(v IN OUT VARCHAR2) is
  i_index number(10);
  BEGIN 
    i_index :=0;
      for i_index in 0..999 loop
       --insert into cdr_record values()
i_index :=i_index + 1;
        end loop;
    commit;
 exception
    when others then
     
      rollback;
  END;帮忙看看为什么i_index :=i_index + 1;
不能被赋值

解决方案 »

  1.   

    for i_index in 0..999 loop
    改為
    for i in 0..999 loop
      

  2.   


    create or replace PROCEDURE GENERATE_CDRRECORD_DATA(v IN OUT VARCHAR2) is
      i_index number(10);
      BEGIN
      for i in 0..999 loop
      --insert into cdr_record values()
    i_index :=i + 1;
      end loop;
      commit;
     exception
      when others then  rollback;
      END;
    /
      

  3.   

    循环变量不用自己手动增加啊,因为已经指定为0..999了。建立存储过程的代码:CREATE OR REPLACE PROCEDURE GENERATE_CDRRECORD_DATA(v IN OUT VARCHAR2)
    IS
    BEGIN
        FOR idx IN 0..9
        LOOP
            INSERT INTO T67 VALUES(idx);
        END LOOP;    
    EXCEPTION
        WHEN OTHERS THEN
            ROLLBACK;    
        COMMIT;        
    END GENERATE_CDRRECORD_DATA;下面是我的实测数据及结果