PLSQL學習-【3迴圈結構】
分批提交例子:
點選( 此處 )摺疊或開啟
-
13 : 30 : 11 SQL > declare
-
13 : 35 : 03 2 cursor cu_emp is select * from emp1 ;
-
13 : 35 : 22 3 begin
-
13 : 35 : 27 4 for v_cu in cu_emp loop
-
13 : 35 : 57 5 if v_cu . ename = \ 'haha\' then
-
13 : 36 : 24 6 delete from emp where empno = v_cu . empno ;
-
13 : 36 : 58 7 end if ;
-
13 : 37 : 01 8 if mod ( cu_emp % rowcount , 1000 ) = 0 then
-
13 : 37 : 34 9 dbms_output . put_line ( cu_emp % rowcount ) ;
-
13 : 38 : 03 10 commit ;
-
13 : 38 : 07 11 end if ;
-
13 : 38 : 11 12 end loop ;
-
13 : 38 : 20 13 -- commit;
-
13 : 38 : 29 14 end ;
-
13 : 38 : 33 15 /
-
-
PL / SQL procedure successfully completed .
-
-
Elapsed : 00 : 01 : 55 . 25
CLERK部門的員工,津貼變成200:
點選( 此處 )摺疊或開啟
-
10 : 32 : 59 SQL > declare
-
10 : 33 : 11 2 cursor cu_emp is select * from emp ;
-
10 : 33 : 23 3 begin
-
10 : 33 : 24 4 for i in cu_emp loop
-
10 : 33 : 35 5 if i . job = \ 'CLERK\' then
-
10 : 33 : 51 6 update emp set comm = 200 where empno = i . empno ;
-
10 : 34 : 11 7 end if ;
-
10 : 34 : 19 8 end loop ;
-
10 : 34 : 24 9 --commit;
-
10 : 34 : 30 10 end ;
-
10 : 34 : 32 11 /
-
-
PL / SQL procedure successfully completed .
-
-
Elapsed : 00 : 00 : 00 . 07
點選( 此處 )摺疊或開啟
-
10 : 38 : 21 SQL > declare
-
10 : 39 : 42 2 cursor cu_emp is select * from emp ;
-
10 : 39 : 53 3 begin
-
10 : 39 : 57 4 for i in cu_emp loop
-
10 : 40 : 07 5 if i . job = \ 'CLERK\' then
-
10 : 40 : 44 6 update emp set comm = 200 where empno = i . empno ;
-
10 : 41 : 47 7 elsif i . job = \ 'SALESMAN\' then --日語錢包:saiif 發音很像
-
10 : 42 : 39 8 update emp set comm = 1000 where empno = i . empno ;
-
10 : 43 : 02 9 end if ;
-
10 : 43 : 11 10 end loop ;
-
10 : 43 : 15 11 end ;
-
10 : 43 : 22 12 /
-
-
PL / SQL procedure successfully completed .
第一次執行時間102s:
第二次執行耗時很短:
三種迴圈:
loop:
點選( 此處 )摺疊或開啟
-
declare
-
i number ;
-
begin
-
i : = 1 ;
-
loop
-
insert into emp ( empno , ename ) values ( i , \ 'YAO\' | | i ) ;
-
i : = i + 1 ;
-
exit when i > 2000 ;
-
end loop ;
-
commit ;
-
end ;
while:
點選( 此處 )摺疊或開啟
-
declare
-
i number ;
-
begin
-
i : = 3000 ;
-
while i < = 6000 loop
-
insert into emp ( empno , ename ) values ( i , \ 'YAO\' | | i ) ;
-
i : = i + 1 ;
-
end loop ;
-
commit ;
-
end ;
點選(
此處
)摺疊或開啟
declare
begin
for
i
in
8004
.
.
9999 loop
insert
into
emp
(
empno
,
ename
)
values
(
i
,
\
'LOU\'
)
;
end
loop
;
commit
;
end
;
點選(
此處
)摺疊或開啟
12
:
59
:
19 SQL
>
declare
12
:
59
:
26 2
begin
12
:
59
:
29 3
for
i
in
1
.
.
9 loop
12
:
59
:
38 4
for
j
in
1
.
.
9 loop
12
:
59
:
54 5 dbms_output
.
put_line
(
i
|
|
\
'*\'
|
|
j
|
|
\
'=\'
|
|
i
*
j
)
;
13
:
01
:
33 6
end
loop
;
13
:
01
:
42 7
end
loop
;
13
:
01
:
46 8
end
;
13
:
01
:
49 9
/
PL
/
SQL procedure successfully completed
.
Elapsed
:
00
:
00
:
00
.
01
13
:
01
:
50 SQL
>
set
serveroutput
on
13
:
01
:
58 SQL
>
/
1
*
1
=
1
1
*
2
=
2
1
*
3
=
3
1
*
4
=
4
1
*
5
=
5
1
*
6
=
6
1
*
7
=
7
1
*
8
=
8
1
*
9
=
9
2
*
1
=
2
2
*
2
=
4
2
*
3
=
6
2
*
4
=
8
2
*
5
=
10
2
*
6
=
12
2
*
7
=
14
2
*
8
=
16
2
*
9
=
18
3
*
1
=
3
3
*
2
=
6
3
*
3
=
9
3
*
4
=
12
3
*
5
=
15
3
*
6
=
18
3
*
7
=
21
3
*
8
=
24
3
*
9
=
27
4
*
1
=
4
4
*
2
=
8
4
*
3
=
12
4
*
4
=
16
4
*
5
=
20
4
*
6
=
24
4
*
7
=
28
4
*
8
=
32
4
*
9
=
36
5
*
1
=
5
5
*
2
=
10
5
*
3
=
15
5
*
4
=
20
5
*
5
=
25
5
*
6
=
30
5
*
7
=
35
5
*
8
=
40
5
*
9
=
45
6
*
1
=
6
6
*
2
=
12
6
*
3
=
18
6
*
4
=
24
6
*
5
=
30
6
*
6
=
36
6
*
7
=
42
6
*
8
=
48
6
*
9
=
54
7
*
1
=
7
7
*
2
=
14
7
*
3
=
21
7
*
4
=
28
7
*
5
=
35
7
*
6
=
42
7
*
7
=
49
7
*
8
=
56
7
*
9
=
63
8
*
1
=
8
8
*
2
=
16
8
*
3
=
24
8
*
4
=
32
8
*
5
=
40
8
*
6
=
48
8
*
7
=
56
8
*
8
=
64
8
*
9
=
72
9
*
1
=
9
9
*
2
=
18
9
*
3
=
27
9
*
4
=
36
9
*
5
=
45
9
*
6
=
54
9
*
7
=
63
9
*
8
=
72
9
*
9
=
81
PL
/
SQL procedure successfully completed
.
點選(
此處
)摺疊或開啟
declare
begin
<
<
outer
>
> --標籤
for
i
in
1
.
.
9 loop
<
<
inner
>
>
for
j
in
1
.
.
9 loop
exit
outer when j
>
5
;
dbms_output
.
put_line
(
i
|
|
\
'*\'
|
|
j
|
|
\
'=\'
|
|
i
*
j
)
;
end
loop
;
end
loop
;
end
;
點選(
此處
)摺疊或開啟
declare
begin
<
<
outer
>
>
for
i
in
1
.
.
9 loop
<
<
inner
>
>
for
j
in
1
.
.
9 loop
exit
outer when j
>
5
;
dbms_output
.
put_line
(
i
|
|
\
'*\'
|
|
j
|
|
\
'=\'
|
|
i
*
j
)
;
end
loop
;
end
loop
;
end
;
1
*
1
=
1
1
*
2
=
2
1
*
3
=
3
1
*
4
=
4
1
*
5
=
5
for迴圈:
迴圈巢狀:
列印9 9 乘法表
迴圈退出:
直接調到外層:
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/29990276/viewspace-1339263/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- Swift學習筆記(二十五)——迴圈結構Swift筆記
- 迴圈結構for
- 迴圈結構
- 學java16迴圈結構Java
- 資料結構學習(C++)——迴圈連結串列 (轉)資料結構C++
- 05迴圈結構
- C語言——迴圈結構(for迴圈,while迴圈,do-while迴圈)C語言While
- Java入門學習-學習if & else,for迴圈,foreach迴圈,while迴圈的用法。JavaWhile
- plsql--迴圈討論SQL
- Python學習筆記-基礎篇(10)-選擇結構與迴圈結構Python筆記
- 學習Rust 迴圈Rust
- 資料結構——迴圈佇列PTA習題資料結構佇列
- C語言學習【3】——判斷與迴圈C語言
- python分支結構與迴圈結構Python
- 資料結構學習(C++)——遞迴【2】(3) (轉)資料結構C++遞迴
- 資料結構學習(C++)——遞迴【3】(1) (轉)資料結構C++遞迴
- 資料結構學習(C++)——遞迴【3】(2) (轉)資料結構C++遞迴
- Python迴圈結構用法Python
- php分支和迴圈結構PHP
- 6、迴圈結構語句
- python3 筆記9.程式流程結構--迴圈結構(while,for)Python筆記While
- 雲端計算學習路線原始碼框架筆記:while迴圈結構原始碼框架筆記While
- Python3學習筆記4 , 迴圈、模組Python筆記
- PLSQL Language Referenc-PL/SQL控制語句-迴圈語句-FOR迴圈-FOR迴圈中的索引SQL索引
- PLSQL Language Referenc-PL/SQL控制語句-迴圈語句-FOR迴圈SQL
- C++中的迴圈結構C++
- JavaScript(二):選擇、迴圈結構JavaScript
- 4.Python——迴圈結構Python
- 「學習筆記」迴圈、列表筆記
- Clojure語法學習-迴圈
- java學習之while迴圈JavaWhile
- Python(二):選擇結構與迴圈結構Python
- 資料結構之迴圈連結串列資料結構
- Python學習-while迴圈練習PythonWhile
- PLSQL Language Referenc-PL/SQL控制語句-迴圈語句-WHILE迴圈SQLWhile
- PLSQL Language Referenc-FOR迴圈-FOR迴圈中的EXIT WHEN和CONTINUE WHENSQL
- Java學習中迴圈語句的學習Java
- plsql_迴圈結構_do while_do unitl_while loop_end loop測試(一)SQLWhileOOP