也可以使用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
有点小问题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;
IS
BEGIN
for aa in i*2;
loop
dbms_output.put_line('多少:'||aa.ikey);
end loop;
END;
这样写是不是明显的有错误。
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
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 过程已成功完成。
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
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;
FOR I IN 1 .. V_IN
这里的2个点代表什么意思。请问
这里的2点就是to的意思,i的值从1到V_IN