ORACLE中有針對邏輯的節制語句,這些語句在日常的存儲過程、函數、、中應用比力普遍對其編程啟著主要的感化,可以完當作營業邏輯的框架部門。
IF前提節制語句就是按照當前前提判定進入到哪一個步調中,當前提為真著進入一個流程,前提為假則進入別的一個流程。
IF語句中有三種利用體例:IF....、IF..ELSE..、IF...ELSEIF....。按照現實環境矯捷運用
IF....布局
語法:
IF condition THEN
statements;
END IF;
注釋:IF.... 語句是最簡單的布局體例,他只有一個IF語句,當condition 為真時,程序將會執行statements,當condition 為假時,將跳過這一段
例:計較9的6次冪是否大于50 0000,若是大于則輸出信息
DECLARE
str1 number(10,0);
BEGIN
str1 := POWER(9,6);
IF str1>500000 THEN
DBMS_OUTPUT.PUT_LINE('9的6次冪大于50萬,其成果是:'||str1);
END IF;
END;
代碼解析:
第2行暗示聲明一個類型為number(10,0)的標量 str1
第4行暗示給變量str1 賦值為9的6次方
第5-7行暗示判定,若是變量str1大于50萬,則執行第6行數據,若是不知足則跳過第6行
語法:
IF condition THEN
statements1;
ELSE
statements2;
END IF;
注釋:當condition 為真時,程序將會執行statements1,當condition 為假時,程序將會執行statements2
例:計較9的5次冪是否大于50 0000,輸出其信息
DECLARE
str1 number(10,0);
BEGIN
str1 := POWER(9,5);
IF str1>500000 THEN
DBMS_OUTPUT.PUT_LINE('9的5次冪大于50萬,其成果是:'||str1);
ELSE
DBMS_OUTPUT.PUT_LINE('9的5次冪小于50萬,其成果是:'||str1);
END IF;
END;
代碼解析:
第2行暗示聲明一個類型為number(10,0)的標量 str1
第4行暗示給變量str1 賦值為9的5次方
第5-6行暗示判定,若是變量str1大于50萬為真,則執行第6行數據
第7-8行對應第5-6行,若是變量str1大于50萬為假,則執行
語法:
IF condition1 THEN
statements1;
ELSIF condition2 THEN
statements2;
...
[ELSE statements]
END IF;
注釋:當condition1 為真時執行statements1
當condition1 為假時則判定condition2是否為真,為真時則執行statements2,為假時則執行后面的判定或者else或者退出
例:隨機獲取一個100--200的隨機數,判定其地點的規模
DECLARE
STR1 NUMBER(10);
BEGIN
STR1 := DBMS_RANDOM.VALUE(100,200);
IF STR1>=100 AND STR1<130 THEN
DBMS_OUTPUT.PUT_LINE('STR1的值在100--130規模內');
ELSIF STR1>=130 AND STR1<160 THEN
DBMS_OUTPUT.PUT_LINE('STR1的值在130--160規模內');
ELSIF STR1>=160 AND STR1<190 THEN
DBMS_OUTPUT.PUT_LINE('STR1的值在160--190規模內');
ELSE
DBMS_OUTPUT.PUT_LINE('STR1的值在190--200規模內');
END IF;
END;
代碼解析:
第2行:聲明一個NUMBER型變量STR1
第4行:給STR1賦值一個隨機數,規模是100-200之間
第5-6行:判定STR1是否大于100小于130,若是為真則輸出第6行,為假則往下進行第7步判定
第7-10行:與上訴一樣,前提為真則輸出,前提為假則繼續標的目的下判定
第11行:若是以上前提都為假,則輸出12行信息
0 篇文章
如果覺得我的文章對您有用,請隨意打賞。你的支持將鼓勵我繼續創作!