PL/SQL的if語句的執行順序,plsqlif語句
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>