一:loop...end loop
先看**
declarev_flag number := 1;
begin
loop
exit when v_flag>16;
v_flag := v_flag+1;
dbms_output.put_line(to_char(v_flag));
end loop;
end;
其中exit when是跳出迴圈的條件,
注意**中的分號,挺重要的。沒有分號會報錯
二:while……loop….end loop
幾個和迴圈結構相關的**,我比較喜歡這個,如下:
declarev_flag number := 1;
begin
while v_flag<16 loop
v_flag := v_flag+1;
dbms_output.put_line(to_char(v_flag));
end loop;
end;
注意這個示例程式和上個示例程式的輸出結果是不同的
具體為什麼不同我就不多解釋了
三:for…loop…end loop
還是類似的示例程式:
declarev_flag number := 1;
begin
for v_flag in 2..16 loop
--v_flag := v_flag+1;
dbms_output.put_line(to_char(v_flag));
end loop;
end;
注意我用--注釋掉了一句
因為在這個迴圈體內,是不允許為哨兵變數賦值的
哨兵變數不知道啥意思?hehe
--是注釋單行的寫法
/* …..*/可以注釋多行
四:順序控制goto
看例子:
declarev_flag number := 1;
begin
while v_flag<16 loop
v_flag := v_flag+1;
dbms_output.put_line(to_char(v_flag));
if mod(v_flag,6) = 0 then
goto lable_1;
end if;
end loop;
<>
dbms_output.put_line('跳出來了');
end;
mod(v,n)是取餘數的意思,
這裡寫這個函式其實沒意義
還不如直接判斷變數是否等六
另外需要注意的是goto語句有很多限制
以下都是不被允許的:
1跳轉到非執行語句前面
2跳轉到子塊中
3跳轉到條件語句中
4跳轉到迴圈語句中
5從條件語句的一部分跳轉到另一部分
6從異常處理部分跳轉到執行部分
PL SQL學習筆記 迴圈控制與順序控制(四)
一 loop.end loop 先看 declare v flag number 1 begin loop exit when v flag 16 v flag v flag 1 dbms output.put line to char v flag end loop end 其中exit when...
PLSQL的迴圈控制
1.if declare v count number 10 0 定義計數器變數 v empno number 4 7888 定義員工編號 begin select count 1 首先查詢指定的員工編號是否存在 into v count from emp where empno v empno 使...
PL SQL 迴圈控制語句
判斷語句 if.else declare v age number not null 50 beginif0 v age and v age 18 then dbms output.put line 兒童 elsif 18 v age and v age 30 then dbms output.pu...