溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊(cè)×
其他方式登錄
點(diǎn)擊 登錄注冊(cè) 即表示同意《億速云用戶服務(wù)條款》

PL/SQL結(jié)構(gòu)

發(fā)布時(shí)間:2020-09-30 19:47:05 來(lái)源:網(wǎng)絡(luò) 閱讀:262 作者:yeleven 欄目:關(guān)系型數(shù)據(jù)庫(kù)

無(wú)名塊:未命名的程序塊

命名塊:指過(guò)程,函數(shù),包和觸發(fā)器


定義部分:用于定義變量,常量,游標(biāo),觸發(fā)器,復(fù)合數(shù)據(jù)類型

執(zhí)行部分:用于實(shí)現(xiàn)應(yīng)用模塊功能,包含了要執(zhí)行的PL/SQL語(yǔ)句和SQL語(yǔ)句

異常處理部分:用于處理執(zhí)行部分可能出現(xiàn)的運(yùn)行錯(cuò)誤

[DECLARE

...  --定義部分]

BEGIN

...  --執(zhí)行部分

[EXCEPTION

...  --異常處理部分]

END;

-------------------------------------

DECLARE

    a NUMBER;

BEGIN

    a:=1+2;

    DBMS_OUTPUT.PUT_LINE('1+2='||a);

EXCEPTION

    WHEN OTHERS THEN

        DBMS_OUTPUT.PUT_LINE('出現(xiàn)異常')

END;

/


條件分支語(yǔ)句:

DECLARE

    a1 number := 100;

    a2 number := 200;

BEGIN

    IF a1>a2 THEN

        DBMS_OUTPUT.PUT_LINE('a1 is larger than a2');

    ELSIF a1=a2 THEN

        DBMS_OUTPUT.PUT_LINE('a1 is equal to a2')

    ELSE

        DBMS_OUTPUT.PUT_LINE('a1 is smaller than a2');

    ENDIF;

END;

/

------------------------------------------------------------------------------------

DECLARE

    grade CHAR(1) := 'B';

    appraisal VARCHAR2(20);

BEGIN

    appraisal :=

    CASE grade

        WHEN 'A' THEN '優(yōu)'

        WHEN 'B' THEN '良'

        WHEN 'C' THEN '中'

        WHEN 'D' THEN '及格'

        WHEN 'F' THEN '不及格'

    ELSE '沒(méi)有這樣的等級(jí)'

    DBMS_OUTPUT.PUT_LINE('Grade'||grade||'is'||appraisal);

END;

/


循環(huán)語(yǔ)句:

DECLARE

    total number := 0;

    salary number := 1800;

BEGIN

    LOOP

        total := total + salary;

        EXIT WHEN total > 2500

    END LOOP;

    DBMS_OUTPUT.PUT_LINE('total salary is'||total);

END;

/

----------------------------------------------------------------------------

DECLARE

    total number := 0;

    salary number := 1800;

BEGIN

    WHILE total<2500 LOOP

        total := total + salary;

    END LOOP;

    DBMS_OUTPUT.PUT_LINE('total salary is'||total);

END;

/

---------------------------------------------------------------------------

DELARE

    I INTEGER;

BEGIN

    FOR I IN REVERSE 1..3 LOOP

        DBMS_OUTPUT.PUT_LINE(I);

    END LOOP;

END;

/




向AI問(wèn)一下細(xì)節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如果涉及侵權(quán)請(qǐng)聯(lián)系站長(zhǎng)郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI