PL SQL學習筆記 迴圈控制與順序控制

2022-02-04 15:55:50 字數 1545 閱讀 1897

一: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是跳出迴圈的條件,

注意**中的分號,挺重要的。沒有分號會報錯

二:while……loop….end loop

幾個和迴圈結構相關的**,我比較喜歡這個,如下:

declare

v_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

還是類似的示例程式:

declare

v_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

看例子:

declare

v_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...