loop
circulation statements; ----循環體;
exit when conditional; ----當when後的判斷為真時退出循環體
end loop;
示例:
LOOP ---start loop
dbms_output.put_line(varient); ------circulation structure
if varient=num then ---------if conditional is true
exit; ---------it will execute exit the loop
end if;
varient:=varient+1; ----此點注意,要是不加會形成死循環,造成buffer overflow
end loop; ---end loop
或
LOOP ---start loop
dbms_output.put_line(varient); ------circulation structure
exit when varient=num;
varient:=varient+1;
end loop; ---end loop
第二類:先判斷,再循環;
說明:這類循環特點是,先判斷條件,若為真才執行循環,若為假則跳出循環。
語法:
when conditional loop -----為真時,再執行循環體
circulation statements; ----循環體;
end loop;
示例:
while varient dbms_output.put_line(varient);
varient:=varient+1;
end loop; ---end loop
第三類:已知次數的循環;
說明:該類循環最好用在已知次數的循環中,但也不盡然。比如下面語法中的start和end既可以是固定的數字,也可以是變量。比如 for var in 1..5,執行5次,還可以是for var in 1..v_booknum
語法:
for var in start..end loop ----var表示已定義過的變量,從start開始循環至end
circulation statements; ----循環體;
end loop;
示例:
for varient in 0..num loop
dbms_output.put_line(varient); ------circulation structure
end loop; ---end loop
第四類:無條件轉向;
說明:該類循環並不常用,也不推薦使用,這種循環很難控制。通常我們都用以上的循環來代替。
語法:
<> ---設置跳轉的標記
circulation statements; ---循環體
goto mark; ---跳轉到上面的mark處
示例:
<>
dbms_output.put_line(varient); ------circulation structure
varient:=varient+1;
if varientgoto circuit;
end if;
PL/SQL循環語句的注意點:
1,根據實現需要來選擇,是先要判斷,還是先要循環。
2,應注意變量的自增或自增,以防造成死循環。
3,有用到GOTO語句的盡量用其它語句來實現。
Jerry_Chow
06/06/10
後記:很久都沒有寫了,今天一開筆,還真不知道怎麼寫了。