PL/SQL中邏輯控制語(yǔ)句

作為一門面向過(guò)程的編程語(yǔ)言,PL/SQL中肯定少不了邏輯控制語(yǔ)句.

一奸绷、條件控制語(yǔ)句

1酪呻、IF條件控制語(yǔ)句

和其它編程語(yǔ)言一樣羞迷,PL/SQL中的IF條件控制語(yǔ)句也有三種形式。

形式1:
        IF condition THEN
            statements;
        END IF;
            
形式2:
        IF condition THEN
            statements;
        ELSE
            statements;
        END IF;     
    
形式3:
        IF condition THEN
            statements;
        ELSIF condition THEN
            statements;
        ELSE
            statements; 
        END IF; 

2画饥、CASE條件控制語(yǔ)句

簡(jiǎn)單case語(yǔ)句
        [ <<label_name>> ]
        CASE case_expr              --這是一個(gè)變量或者表達(dá)式
        WHEN case_value1 THEN
            statement;
        WHEN case_value2 THEN
            statement;
        ELSE                 --當(dāng)所有value都不匹配時(shí)執(zhí)行衔瓮,可省略
            statment;
        END CASE [label_name];
        
搜索式case語(yǔ)句
        [ <<label_name>> ]
        CASE                --這里沒(méi)有表達(dá)式
        WHEN boolean_expr1 THEN
            statement;
        WHEN boolean_expr2 THEN
            statement;
        ELSE                 --當(dāng)所有 boolean_expr都不成立時(shí)執(zhí)行,可省略
            statment;
        END CASE [label_name];  

二抖甘、LOOP循環(huán)控制語(yǔ)句

在PL/SQL中重復(fù)執(zhí)行一條語(yǔ)句或一組語(yǔ)句热鞍,可以使用循環(huán)控制結(jié)構(gòu),PL/SQL中循環(huán)結(jié)構(gòu)有下面4種形式:
1)基本循環(huán)結(jié)構(gòu)
2)WHILE ... LOOP
3)FOR 循環(huán)
4)CURSOR FOR LOOP:在游標(biāo)中介紹

1衔彻、基本循環(huán)結(jié)構(gòu)

LOOP                    --循環(huán)開(kāi)始標(biāo)志
    statement;          --循環(huán)體
END LOOP;               --循環(huán)結(jié)束標(biāo)志


示例1:
declare 
  i number(10);
begin
  i := 1;
  LOOP
    DBMS_OUTPUT.PUT_LINE('i值為:' || i);
  EXIT WHEN i >= 10;
    i := i+1;
  END LOOP;
end;
/

示例2:
declare 
  i number(10);
begin
  i := 1;
  LOOP
    DBMS_OUTPUT.PUT_LINE('i值為:' || i);
      IF i >= 10 THEN
        EXIT;
      END IF;
      i := i+1;
  END LOOP;
end;
/

基本循環(huán)結(jié)構(gòu)需要搭配 EXIT 退出循環(huán)薇宠,否則會(huì)一直執(zhí)行下去.

2、WHILE ... LOOP

該循環(huán)結(jié)構(gòu)本身可以終止循環(huán)米奸,當(dāng) WHILE 后面 布爾表達(dá)式true 時(shí)昼接,循環(huán)體將會(huì)執(zhí)行一次,然后重新判斷 布爾表達(dá)式 是否為 true悴晰,直到為 false 時(shí),退出循環(huán).

WHILE boolean_expr      --布爾表達(dá)式
LOOP
    statement;          --循環(huán)體
END LOOP;


示例:
declare 
  i number(10);
begin
  i := 1;
  WHILE i <= 10
  LOOP
    DBMS_OUTPUT.PUT_LINE('i值為:' || i);
    i := i+1;
  END LOOP;
end;
/

3逐工、FOR 循環(huán)

FOR index IN [REVERSE]              --index:循環(huán)次數(shù)    REVERSE:循環(huán)方式铡溪,默認(rèn)從下邊界到上邊界,使用之后剛好相反
    lower_bound .. upper_bound      --分別對(duì)應(yīng)FOR循環(huán)的下邊界泪喊、上邊界棕硫,用..連接
LOOP                
    statment;      --循環(huán)體
END LOOP;       


示例:
begin
  FOR i IN 1..10
  LOOP
    DBMS_OUTPUT.PUT_LINE('i:' || i);
  END LOOP;
end;
/

當(dāng)lower_boundupper_bound相等時(shí),循環(huán)只執(zhí)行一次袒啼,同時(shí)哈扮,這兩者也可以用變量來(lái)代替,動(dòng)態(tài)控制循環(huán)范圍.

四蚓再、順序控制語(yǔ)句

PL/SQL中一般都是從前到后的順序執(zhí)行滑肉,同時(shí)也可以使用 GOTO、NULL 來(lái)控制順序.
GOTO:跳轉(zhuǎn)到特定處執(zhí)行隨后的語(yǔ)句.
NULL:不會(huì)執(zhí)行任何操作.

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末摘仅,一起剝皮案震驚了整個(gè)濱河市靶庙,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌娃属,老刑警劉巖六荒,帶你破解...
    沈念sama閱讀 207,248評(píng)論 6 481
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場(chǎng)離奇詭異矾端,居然都是意外死亡掏击,警方通過(guò)查閱死者的電腦和手機(jī),發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 88,681評(píng)論 2 381
  • 文/潘曉璐 我一進(jìn)店門秩铆,熙熙樓的掌柜王于貴愁眉苦臉地迎上來(lái)砚亭,“玉大人,你說(shuō)我怎么就攤上這事∧瞥停” “怎么了柒凉?”我有些...
    開(kāi)封第一講書(shū)人閱讀 153,443評(píng)論 0 344
  • 文/不壞的土叔 我叫張陵,是天一觀的道長(zhǎng)篓跛。 經(jīng)常有香客問(wèn)我膝捞,道長(zhǎng),這世上最難降的妖魔是什么愧沟? 我笑而不...
    開(kāi)封第一講書(shū)人閱讀 55,475評(píng)論 1 279
  • 正文 為了忘掉前任蔬咬,我火速辦了婚禮,結(jié)果婚禮上沐寺,老公的妹妹穿的比我還像新娘林艘。我一直安慰自己,他們只是感情好混坞,可當(dāng)我...
    茶點(diǎn)故事閱讀 64,458評(píng)論 5 374
  • 文/花漫 我一把揭開(kāi)白布狐援。 她就那樣靜靜地躺著,像睡著了一般究孕。 火紅的嫁衣襯著肌膚如雪啥酱。 梳的紋絲不亂的頭發(fā)上,一...
    開(kāi)封第一講書(shū)人閱讀 49,185評(píng)論 1 284
  • 那天厨诸,我揣著相機(jī)與錄音镶殷,去河邊找鬼。 笑死微酬,一個(gè)胖子當(dāng)著我的面吹牛绘趋,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播颗管,決...
    沈念sama閱讀 38,451評(píng)論 3 401
  • 文/蒼蘭香墨 我猛地睜開(kāi)眼陷遮,長(zhǎng)吁一口氣:“原來(lái)是場(chǎng)噩夢(mèng)啊……” “哼!你這毒婦竟也來(lái)了忙上?” 一聲冷哼從身側(cè)響起拷呆,我...
    開(kāi)封第一講書(shū)人閱讀 37,112評(píng)論 0 261
  • 序言:老撾萬(wàn)榮一對(duì)情侶失蹤,失蹤者是張志新(化名)和其女友劉穎疫粥,沒(méi)想到半個(gè)月后茬斧,有當(dāng)?shù)厝嗽跇?shù)林里發(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 43,609評(píng)論 1 300
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡梗逮,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 36,083評(píng)論 2 325
  • 正文 我和宋清朗相戀三年项秉,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片慷彤。...
    茶點(diǎn)故事閱讀 38,163評(píng)論 1 334
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡娄蔼,死狀恐怖怖喻,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情岁诉,我是刑警寧澤锚沸,帶...
    沈念sama閱讀 33,803評(píng)論 4 323
  • 正文 年R本政府宣布,位于F島的核電站涕癣,受9級(jí)特大地震影響哗蜈,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜坠韩,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 39,357評(píng)論 3 307
  • 文/蒙蒙 一距潘、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧只搁,春花似錦音比、人聲如沸。這莊子的主人今日做“春日...
    開(kāi)封第一講書(shū)人閱讀 30,357評(píng)論 0 19
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽(yáng)。三九已至焰望,卻和暖如春菱农,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背柿估。 一陣腳步聲響...
    開(kāi)封第一講書(shū)人閱讀 31,590評(píng)論 1 261
  • 我被黑心中介騙來(lái)泰國(guó)打工, 沒(méi)想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留陷猫,地道東北人秫舌。 一個(gè)月前我還...
    沈念sama閱讀 45,636評(píng)論 2 355
  • 正文 我出身青樓,卻偏偏與公主長(zhǎng)得像绣檬,于是被迫代替她去往敵國(guó)和親足陨。 傳聞我的和親對(duì)象是個(gè)殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 42,925評(píng)論 2 344

推薦閱讀更多精彩內(nèi)容