PL/SQL 002---PL/SQL的基本能概念--2.2語言特性--2.2.3程式控制語句
阿新 • • 發佈:2020-12-29
2.2.3程式控制語句
機構化程式設計語言分順序、迴圈、分支3中結構,PL/SQL提供了一系列的控制和跳轉語句來支援這3種結構。
1.條件控制語句
最常用的是IF-THEN-ELSE語句,IF用來檢查指定表示式的條件:THEN在條件中的值為True時執行程式碼:ELSE在條件值為False或NULL時執行程式碼。在IF條件中可以使用布林表示式包含多個條件,也可以使用IF-THEN-ELSIF語句來進行多條件判斷。
如果要判斷的條件過多,可以使用CASE語句,CASE語句可以僅檢查一次條件判斷的值,然後判斷這個值在多種條件下的實現。
create or replace function getMarkByCaseWhen(score in number) --傳入學生成績
return varchar2 is --返回績點
v_mark varchar2(2);
begin
case
when score > 90 then --根據成績進行判斷
v_mark := 'A';
when score > 80 then
v_mark := 'B';
when score > 70 then
v_mark := 'C';
when score >= 60 then
v_mark := 'D';
when score < 60 then
v_mark := 'F';
end case;
return v_mark;
end;
程式碼使用了CASE-WHEN語句後,在呼叫時與IF-THEN-ELSE能產生相同的效果,但是兩者有一個區別:當CASE發現一個when**子句不存在判斷條件時,會觸發異常。
2.迴圈控制語句
PL/SQL 提供了三種類型的迴圈,如下所示:
(1)簡單迴圈:這是最基礎的迴圈型別,包含LOOP-END LOOP和用來退出迴圈的EXIT方法。
(2)數字FOR式迴圈
(3)WHILE迴圈:僅當條件成立時才執行迴圈。
以下展示如何使用數字式FOR迴圈列印九九乘法口訣表,定義程式碼如下:
--通過迴圈列印輸出九九乘法表
declare
--定義外層迴圈數
v_num1 number;
--定義內層迴圈數
v_num2 number;
begin
--第一層迴圈
for v_num1 in 1 .. 9 loop
--第二層迴圈從1開始到第一層結束
for v_num2 in 1 .. v_num1 loop
dbms_output.put(v_num2
||'*'
|| v_num1
||'='
||v_num1*v_num2
||' '
);
end loop;
dbms_output.put_line('');
end loop;
end;
結果
為了列印九九乘法口訣表,使用了兩個FOR迴圈,內層FOR根據外層FOR的迴圈次數來決定最大的計數。