CREATE OR REPLACE PROCEDURE INSERTAMOUNTTEST
(
ED_NUM        IN     NUMBER     //700000000
)
IS
BEGIN
DECLARE
       A        NUMBER IS 0;     
       BASENUM  NUMBER IS 100;   
       I        NUMBER IS 0;    
       Y        NUMBER IS 0;    
begin
  FOR A..ED_NUM/100 LOOP     
    I = 100*A;
    FOR I..(100*A+50) LOOP    
      INSERT INTO tb values(i,'3','3','3',100,'0');    
      INSERT INTO tb values(BASENUM-Y,'3','3','3',100,'0');
      Y++;
    END LOOP;
    BASENUM = BASENUM+100;
    Y=0;
  END LOOP
end;
END;

解决方案 »

  1.   

    汗!~~~  收回我上边说的CREATE OR REPLACE PROCEDURE INSERTAMOUNTTEST
    (
    ED_NUM IN NUMBER --//700000000
    )
    IS
    BEGIN
    DECLARE
    A NUMBER;
    BASENUM NUMBER;
    I NUMBER;
    Y NUMBER;
    begin
      a:=0;
      basenum:=0;
      i:=0;
      y:=0;
      FOR A in 0..ED_NUM/100 LOOP
        I:= 100*A;
        FOR I in 0..(100*A+50) LOOP
        INSERT INTO tb values(i,'3','3','3',100,'0');    
        INSERT INTO tb values(BASENUM-Y,'3','3','3',100,'0');
        Y:=Y+1;
        END LOOP;
        BASENUM := BASENUM+100;
        Y:=0;
      END LOOP;
    END;
    End;
      

  2.   

    这样就没有语法错误。CREATE OR REPLACE PROCEDURE insertamounttest 
    (
    ed_num IN NUMBER   --//700000000
    )
    IS
    BEGIN
       DECLARE
          a         NUMBER          := 0;
          basenum   NUMBER          := 100;
          i         NUMBER (15, 10) := 0;
          y         NUMBER          := 0;
       BEGIN
          FOR a IN 0 .. ed_num / 100
          LOOP
             i := 100 * a;         FOR i IN 0 .. (100 * a + 50)
             LOOP
                INSERT INTO tb values(i,'3','3','3',100,'0');    
                INSERT INTO tb values(BASENUM-Y,'3','3','3',100,'0');
                y := y + 1;
             END LOOP;         basenum := basenum + 100;
             y := 0;
          END LOOP;
       END;
    END;