Oracle PL SQL控制結構

2021-12-30 11:05:24 字數 2676 閱讀 7257

oracle pl/sql控制結構

pl/sql是面向過程的語言,存在針對邏輯的控制語言。主要的邏輯控制語句有if、if....else...、if....elif.....、巢狀if、case、loop、while...loop、for...loop、cursor for loop。

一、if條件控制語句

if語句有三種使用方式:if、if...else...、if...elif....。這三種方式根據實際的情況靈活選擇。

www.2cto.com  

(1)if 語法結構:

if   condition   then  statement;   

end   if;

(2) if...else...結構語法結構:

if  condition then  statements ;

else  statements;

end if;

(3)if....elif....結構

if  condition then  statements;

elif  condition2 then  statements;

......

[else statements;]

end if;  www.2cto.com  

(4) if巢狀

二、case條件控制語句

case條件控制語句可以分為兩種型別:

1)一種是簡單的case語句。它給出乙個表示式,並把表示式結果同提供的幾個可以預見的結果做比較,如果比較成功則執行對應的語句序列。

[<>]

case   case_operand

when  when_operand  then statement;

[when when_operand  then statement;]

[else   statement;]

end case  [label_name]

www.2cto.com  

說明:<>是乙個標籤,可以選擇性新增。如果新增標籤,建議在case語句結束時也標明該標籤,表示結束的是某個case語句。

2)搜尋式的case語句

搜尋式的case語句會依次檢查布林值是否為true,一旦為true,那麼它所在的when子句就會被執行,而且它後面的布林表示式將不被考慮。如果所有的布林表示式都不為true,那麼程式將轉到else子句。如果沒有else子句,那麼系統會給出case_not_found異常。

[<>]

case

when  boolean_expression  then  statement;

.....  www.2cto.com  

[else statement;]

end  case  [label_name];

三、loop迴圈控制語句

loop迴圈語句有四種形式:loop、while...loop、for.....loop、cursor for  loop。

1、基本的loop

該形式的loop迴圈屬於loop迴圈控制語句中最基本的結構,它會反覆執行loop和end loop之間的語句序列。用於基本的loop語句本身沒有包含中斷迴圈的條件,所以通常情況下都是和其他的條件控制語句一起使用,利用exit、goto等可以中斷loop迴圈。

<>

loop  www.2cto.com  

statement.....;

end loop [label_name];

基本的loop語句需要和條件控制語句一起使用,否則會出現死迴圈的情況。通常情況下,正常中止迴圈的方式有以下兩種:(1)在迴圈中使用if語句與exit組合來結束迴圈,表示當滿足某個條件時退出迴圈體,然後向後執行。exit預設是退出當前的迴圈,如果使用標籤,可以退出指定的loop迴圈。

(2)使用exit...when語句來結束迴圈。這種方式在游標中經常使用。它代表的含義是:當when後面的條件為true時,exit會被觸發。如果exit後面不加loop迴圈,則表示中止當前的迴圈。例如: exit basic_loop when v_num>5;

2、while...loop迴圈

while...loop結構的語句本身可以終止loop迴圈,當while後面的布林表示式為true時,loop和end loop之間的語句集將執行一次,而後重新判斷while後面的表示式是否為true。語法結構如下:

[<>]

while boolean_expression

loop  www.2cto.com  

statement;

end loop [label_name];

說明:語法中的boolean_expression是乙個布林表示式,只要當表示式為true的時候,statement部分才能得到執行。

3、for...loop

for...loop語句迴圈遍歷指定範圍內的整數。for...loop迴圈的語法結構如下:

[<>]

for  index_name in  [reverse]  lower_bound .. upper_bound

loop   www.2cto.com  

statement;

end loop [label_name];

說明:index_name為迴圈計數器,注意不能為其賦值。reverse:該項指定迴圈的方式,預設的是由下標到上標,如果使用reverse關鍵字,則迴圈方式相反,將從上標到下標。

下標和上標之間需要使用「..」連線。

初識Oracle PL SQL控制流程

else if declare sals number begin select sal into sals from emp where empno empno if sals 2000 then dbms output.put line 掙得不多,需努力 else if sals 5000 th...

Oracle PL SQL之LOOP迴圈控制語句

在pl sql中可以使用loop語句對資料進行迴圈處理,利用該語句可以迴圈執行指定的語句序列。常用的loop迴圈語句包含3種形式 基本的loop while.loop和for.loop。loop語句的基本語法結構如下 loop statement.end loop label name 語法說明 l...

Oracle PL SQL語言基礎 控制語句

預定義異常種類 異常處理 異常說明 access into null 在未初始化物件時出現 case not founf 在case 語句中的選項與使用者輸入的資料不匹配時出現 collection is null 在給尚未初始化的表或陣列賦值時出現 cursor already open 使用者試...