输入参数为 i_number ,i_number输入的范围为1-10,
当输入参数为2的话,用dbms_output.put()或者dbms_output.put_line()来打印
结果如:1 、2
3 、4
当输入3的话,
结果为:1 、2 、3
4 、5 、6
7 、8 、9
当输入4的话,依次类推。
要求写一个存储过程来实现,请问大家这怎么做啊。
当输入参数为2的话,用dbms_output.put()或者dbms_output.put_line()来打印
结果如:1 、2
3 、4
当输入3的话,
结果为:1 、2 、3
4 、5 、6
7 、8 、9
当输入4的话,依次类推。
要求写一个存储过程来实现,请问大家这怎么做啊。
CREATE OR REPLACE PROCEDURE P_TEST(I_NUMBER INT) IS
BEGIN
FOR I IN 1 .. I_NUMBER LOOP
FOR J IN 1 .. I_NUMBER LOOP
IF J = 1 THEN
DBMS_OUTPUT.PUT(TO_CHAR(J + I_NUMBER * (I - 1)));
ELSE
DBMS_OUTPUT.PUT('、' || TO_CHAR(J + I_NUMBER * (I - 1)));
END IF;
END LOOP;
DBMS_OUTPUT.PUT_LINE('');
END LOOP;
END P_TEST;
/BEGIN
P_TEST(3);
END;
/
SQL> set serveroutput on;
SQL>
SQL> create or replace procedure huawei_test(i_number in number)
2 is
3 temp_char number;
4 begin
5 temp_char := 0;
6 for i in 1..i_number loop
7 for i in 1..i_number loop
8 temp_char := temp_char + 1;
9 dbms_output.put(temp_char||' ');
10 end loop;
11 dbms_output.put_line('');
12 end loop;
13 end ;
14 /Procedure createdSQL> exec huawei_test(3);1 2 3
4 5 6
7 8 9 PL/SQL procedure successfully completedSQL> exec huawei_test(6);1 2 3 4 5 6
7 8 9 10 11 12
13 14 15 16 17 18
19 20 21 22 23 24
25 26 27 28 29 30
31 32 33 34 35 36 PL/SQL procedure successfully completedSQL>