scott@TEST1>declare
2 n_a number;
3 n_b number;
4 n_c number;
5 n_d number;
6 c_line varchar2(20);
7 begin
8 c_line:='';
9 n_a:=1;
10 n_b:=1;
11 n_c:=1;
12 n_d:=4;
13 for n_a in 1..5 loop
14 for n_b in 1..n_d loop
15 c_line:=c_line+' ';
16 end loop;
17 for n_c in 1..n_a loop
18 c_line:=c_line+'* ';
19 end loop;
20 dbms_output.put_line(c_line);
21 c_line:='';
22 n_b:=1;
23 n_c:=1;
24 n_d:=n_d-1;
25 end loop;
26 end;
27 /
declare
*
第 1 行出现错误:
ORA-06502: PL/SQL: 数字或值错误 : 字符到数值的转换错误
ORA-06512: 在 line 14
->
c_line:=c_line||'* ';
declare
n_a number;
n_b number;
n_c number;
n_d number;
c_line varchar2(20);
begin
c_line := '';
n_a := 1;
n_b := 1;
n_c := 1;
n_d := 4;
for n_a in 1 .. 5 loop
for n_b in 1 .. n_d loop
c_line := c_line || ' ';
end loop;
for n_c in 1 .. n_a loop
c_line := c_line || '* ';
end loop;
dbms_output.put_line(c_line);
c_line := '';
n_b := 1;
n_c := 1;
n_d := n_d - 1;
end loop;
end;
已写入 file afiedt.buf 1 declare
2 n_a number;
3 n_b number;
4 n_c number;
5 n_d number;
6 c_line varchar2(20);
7 begin
8 c_line:='';
9 n_a:=1;
10 n_b:=1;
11 n_c:=1;
12 n_d:=4;
13 for n_a in 1..5 loop
14 for n_b in 1..n_d loop
15 c_line:=c_line || ' ';
16 end loop;
17 for n_c in 1..n_a loop
18 c_line:=c_line || '* ';
19 end loop;
20 dbms_output.put_line('|' || c_line);
21 c_line:='';
22 n_b:=1;
23 n_c:=1;
24 n_d:=n_d-1;
25 end loop;
26* end;
SQL> /
| *
| * *
| * * *
| * * * *
|* * * * *PL/SQL 过程已成功完成。