PL/SQL的if語句的執行順序

PL/SQL的if語句的語法定義如下:

IF condition THEN

         {...statements...}

ELSIF condition THEN

         {...statements...}

ELSE

         {...statements...}

END IF;


由於PL/SQL不像高級語言,沒有大括號,如果statements中包含了多個操作,這些操作是否都會執行呢?

下面寫了一個函數做一個實驗,來驗證if語句的執行順序:

<span style="font-size:18px;">create or replace function testif(v_i in number)
   return number as   
begin
    if v_i<0
       then 
         dbms_output.put_line('輸出內容1');
         dbms_output.put_line('輸出內容2');
         dbms_output.put_line('輸出內容3');
    elsif v_i=1 then
         dbms_output.put_line('輸出內容4');
         dbms_output.put_line('輸出內容5');
    elsif v_i=2 then 
         dbms_output.put_line('輸出內容6');  
         dbms_output.put_line('輸出內容7');   
    else 
         dbms_output.put_line('輸出內容8');
         dbms_output.put_line('輸出內容9');       
    end if;
    return v_i;
end testif;
</span>

如果v_i=-1時,控制檯打印出:

         輸出內容1
              輸出內容2
              輸出內容3

如果v_i=1時,控制檯打印出:

        輸出內容4
             輸出內容5

如果v_i=2時,控制檯打印出:

        輸出內容6
             輸出內容7

如果v_i=3時,控制檯打印出:

        輸出內容8
             輸出內容9


總結:

   PL/SQL中,不需要大括號或begin..end把下面三個語句括起來,下面三個語句也會一起執行。

<span style="font-size:18px;">         dbms_output.put_line('輸出內容1');
         dbms_output.put_line('輸出內容2');
         dbms_output.put_line('輸出內容3');</span>



發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章