SQL> set serverout on
SQL>
SQL> Declare
2 Cursor Csr Is Select Level From dual Connect By Level<=12;
3 Type T_Csr Is Table Of Varchar2(10);
4 v_Csr T_Csr;
5 i Number:=0;
6 j Number;
7 Begin
8 Open Csr;
9 Loop
10 Fetch Csr Bulk Collect Into v_Csr;
11 Exit When v_Csr.Count=0;
12 i:=i+1;
13 dbms_output.put_line('第 '||i||' 次取数');
14
15 For j In v_Csr.first..v_Csr.Last Loop
16 dbms_output.put_line(j);
17 End Loop;
18 End Loop;
19 End;
20 /
第 1 次取数
1
2
3
4
5
6
7
8
9
10
11
12
PL/SQL procedure successfully completed
SQL>
SQL> Declare
2 Cursor Csr Is Select Level From dual Connect By Level<=12;
3 Type T_Csr Is Table Of Varchar2(10);
4 v_Csr T_Csr;
5 i Number:=0;
6 j Number;
7 Begin
8 Open Csr;
9 Loop
10 Fetch Csr Bulk Collect Into v_Csr Limit 5;
11 Exit When v_Csr.Count=0;
12 i:=i+1;
13 dbms_output.put_line('第 '||i||' 次取数');
14
15 For j In v_Csr.first..v_Csr.Last Loop
16 dbms_output.put_line(j);
17 End Loop;
18 End Loop;
19 End;
20 /
第 1 次取数
1
2
3
4
5
第 2 次取数
1
2
3
4
5
第 3 次取数
1
2
PL/SQL procedure successfully completed
SQL>
SQL> Declare
2 Cursor Csr Is Select Level From dual Connect By Level<=12;
3 Type T_Csr Is Varray(5) Of Varchar2(10);
4 v_Csr T_Csr;
5 i Number:=0;
6 j Number;
7 Begin
8 Open Csr;
9 Loop
10 Fetch Csr Bulk Collect Into v_Csr;
11 Exit When v_Csr.Count=0;
12 i:=i+1;
13 dbms_output.put_line('第 '||i||' 次取数');
14
15 For j In v_Csr.first..v_Csr.Last Loop
16 dbms_output.put_line(j);
17 End Loop;
18 End Loop;
19 End;
20 /
Declare
Cursor Csr Is Select Level From dual Connect By Level<=12;
Type T_Csr Is Varray(5) Of Varchar2(10);
v_Csr T_Csr;
i Number:=0;
j Number;
Begin
Open Csr;
Loop
Fetch Csr Bulk Collect Into v_Csr;
Exit When v_Csr.Count=0;
i:=i+1;
dbms_output.put_line('第 '||i||' 次取数');
For j In v_Csr.first..v_Csr.Last Loop
dbms_output.put_line(j);
End Loop;
End Loop;
End;
ORA-22165: 指定的索引 [6] 必须介于 [1] 到 [5] 之间
ORA-06512: 在 line 10
SQL>
SQL> Declare
2 Cursor Csr Is Select Level From dual Connect By Level<=12;
3 Type T_Csr Is Varray(5) Of Varchar2(10);
4 v_Csr T_Csr;
5 i Number:=0;
6 j Number;
7 Begin
8 Open Csr;
9 Loop
10 Fetch Csr Bulk Collect Into v_Csr Limit 3;
11 Exit When v_Csr.Count=0;
12 i:=i+1;
13 dbms_output.put_line('第 '||i||' 次取数');
14
15 For j In v_Csr.first..v_Csr.Last Loop
16 dbms_output.put_line(j);
17 End Loop;
18 End Loop;
19 End;
20 /
第 1 次取数
1
2
3
第 2 次取数
1
2
3
第 3 次取数
1
2
3
第 4 次取数
1
2
3
SQL>
SQL> Declare
2 Cursor Csr Is Select Level From dual Connect By Level<=12;
3 Type T_Csr Is Table Of Varchar2(10);
4 v_Csr T_Csr;
5 i Number:=0;
6 j Number;
7 Begin
8 Open Csr;
9 Loop
10 Fetch Csr Bulk Collect Into v_Csr;
11 Exit When v_Csr.Count=0;
12 i:=i+1;
13 dbms_output.put_line('第 '||i||' 次取数');
14
15 For j In v_Csr.first..v_Csr.Last Loop
16 dbms_output.put_line(j);
17 End Loop;
18 End Loop;
19 End;
20 /
第 1 次取数
1
2
3
4
5
6
7
8
9
10
11
12
PL/SQL procedure successfully completed
SQL>
SQL> Declare
2 Cursor Csr Is Select Level From dual Connect By Level<=12;
3 Type T_Csr Is Table Of Varchar2(10);
4 v_Csr T_Csr;
5 i Number:=0;
6 j Number;
7 Begin
8 Open Csr;
9 Loop
10 Fetch Csr Bulk Collect Into v_Csr Limit 5;
11 Exit When v_Csr.Count=0;
12 i:=i+1;
13 dbms_output.put_line('第 '||i||' 次取数');
14
15 For j In v_Csr.first..v_Csr.Last Loop
16 dbms_output.put_line(j);
17 End Loop;
18 End Loop;
19 End;
20 /
第 1 次取数
1
2
3
4
5
第 2 次取数
1
2
3
4
5
第 3 次取数
1
2
PL/SQL procedure successfully completed
SQL>
SQL> Declare
2 Cursor Csr Is Select Level From dual Connect By Level<=12;
3 Type T_Csr Is Varray(5) Of Varchar2(10);
4 v_Csr T_Csr;
5 i Number:=0;
6 j Number;
7 Begin
8 Open Csr;
9 Loop
10 Fetch Csr Bulk Collect Into v_Csr;
11 Exit When v_Csr.Count=0;
12 i:=i+1;
13 dbms_output.put_line('第 '||i||' 次取数');
14
15 For j In v_Csr.first..v_Csr.Last Loop
16 dbms_output.put_line(j);
17 End Loop;
18 End Loop;
19 End;
20 /
Declare
Cursor Csr Is Select Level From dual Connect By Level<=12;
Type T_Csr Is Varray(5) Of Varchar2(10);
v_Csr T_Csr;
i Number:=0;
j Number;
Begin
Open Csr;
Loop
Fetch Csr Bulk Collect Into v_Csr;
Exit When v_Csr.Count=0;
i:=i+1;
dbms_output.put_line('第 '||i||' 次取数');
For j In v_Csr.first..v_Csr.Last Loop
dbms_output.put_line(j);
End Loop;
End Loop;
End;
ORA-22165: 指定的索引 [6] 必须介于 [1] 到 [5] 之间
ORA-06512: 在 line 10
SQL>
SQL> Declare
2 Cursor Csr Is Select Level From dual Connect By Level<=12;
3 Type T_Csr Is Varray(5) Of Varchar2(10);
4 v_Csr T_Csr;
5 i Number:=0;
6 j Number;
7 Begin
8 Open Csr;
9 Loop
10 Fetch Csr Bulk Collect Into v_Csr Limit 3;
11 Exit When v_Csr.Count=0;
12 i:=i+1;
13 dbms_output.put_line('第 '||i||' 次取数');
14
15 For j In v_Csr.first..v_Csr.Last Loop
16 dbms_output.put_line(j);
17 End Loop;
18 End Loop;
19 End;
20 /
第 1 次取数
1
2
3
第 2 次取数
1
2
3
第 3 次取数
1
2
3
第 4 次取数
1
2
3
PL/SQL procedure successfully completed
SQL> Declare
2 Type T_Csr Is Table Of Varchar2(10);
3 v_Csr T_Csr;
4 Begin
5 Select Level Bulk Collect Into v_Csr From dual Connect By Level<=3;
6 For j In v_Csr.first..v_Csr.Last Loop
7 dbms_output.put_line(j);
8 End Loop;
9 End;
10 /
1
2
3
PL/SQL procedure successfully completed