比如说我输入10。就循环打印10次。从1到10的平方!
 
  小弟刚入门。做了这个。可是报错。求大哥们给我个解    

解决方案 »

  1.   

    create or replace procedure fssdd(i in number)
    IS
    BEGIN
         for aa in i*2;
         loop
         dbms_output.put_line('多少:'||aa.ikey);
         end loop;
      END;
    这样写是不是明显的有错误。
      

  2.   

    create or replace procedure print_square(i int) is
    idx int;
    begin
    idx:=1;
    loop
    if(idx > i) then
    exit;
    end if;

    dbms_output.put_line(idx||'*'||idx||'='||(idx*idx));
    idx:=idx+1;end loop;
    end;==============SQL> exec print_square(6);
    1*1=1
    2*2=4
    3*3=9
    4*4=16
    5*5=25
    6*6=36
      

  3.   

    SQL> set serverout on;SQL> exec print_square(10);
    1*1=1
    2*2=4
    3*3=9
    4*4=16
    5*5=25
    6*6=36
    7*7=49
    8*8=64
    9*9=81
    10*10=100PL/SQL 过程已成功完成。
      

  4.   

    也可以使用oracle自带的函数:powerCREATE OR REPLACE PROCEDURE PRINT_SQUARE(I INT) IS
      V_IN     INT := 10;
      V_RESULT INT;
    BEGIN
      FOR I IN 1 .. V_IN
      LOOP
        V_RESULT := POWER(I,
                          2);
        DBMS_OUTPUT.PUT_LINE(I || '*' || I || '=' || V_RESULT);
      END LOOP;
    END;1*1=1
    2*2=4
    3*3=9
    4*4=16
    5*5=25
    6*6=36
    7*7=49
    8*8=64
    9*9=81
    10*10=100
      

  5.   

    有点小问题CREATE OR REPLACE PROCEDURE PRINT_SQUARE(V_IN INT) IS 
      V_RESULT INT;
    BEGIN
      FOR I IN 1 .. V_IN
      LOOP
        V_RESULT := POWER(I,
                          2);
        DBMS_OUTPUT.PUT_LINE(I || '*' || I || '=' || V_RESULT);
      END LOOP;
    END;
      

  6.   


    FOR I IN 1 .. V_IN
    这里的2个点代表什么意思。请问
      

  7.   


    这里的2点就是to的意思,i的值从1到V_IN