1. 程式人生 > 其它 >PL/SQL 002---PL/SQL的基本能概念--2.2語言特性--2.2.3程式控制語句

PL/SQL 002---PL/SQL的基本能概念--2.2語言特性--2.2.3程式控制語句

技術標籤:Oracle相關plsqloracleplsql

2.2.3程式控制語句

機構化程式設計語言分順序、迴圈、分支3中結構,PL/SQL提供了一系列的控制和跳轉語句來支援這3種結構。

1.條件控制語句
最常用的是IF-THEN-ELSE語句,IF用來檢查指定表示式的條件:THEN在條件中的值為True時執行程式碼:ELSE在條件值為FalseNULL時執行程式碼。在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的迴圈次數來決定最大的計數。