<rt id="bn8ez"></rt>
<label id="bn8ez"></label>

  • <span id="bn8ez"></span>

    <label id="bn8ez"><meter id="bn8ez"></meter></label>

    隨筆-7  評(píng)論-24  文章-102  trackbacks-0

    一、概述、PL/SQL 塊結(jié)構(gòu)
    二、控制結(jié)構(gòu)(分支、循環(huán)、控制)
    三、異常
    四、復(fù)合變量(記錄)



    一、概述、PL/SQL 塊結(jié)構(gòu)
    PL/SQL 是Oracle產(chǎn)品對(duì) SQL 語(yǔ)言的擴(kuò)展。PL/SQL 塊共分為三個(gè)部分:聲明部分、可執(zhí)行部分、異常部分。
    DECLARE
        ...
    BEGIN
        ...
    EXCEPTION
        ...
    END;
    變量聲明內(nèi)容:賦予變量適當(dāng)?shù)拿Q、數(shù)據(jù)類型、定義變量(標(biāo)準(zhǔn),記錄)、控制變量范圍。
    變量命名規(guī)則:變量以字符開頭;可包含數(shù)字、下劃線、$、#;長(zhǎng)度范圍 1~30;不區(qū)分大小寫;不能使用系統(tǒng)關(guān)鍵字。

    ps.在 PL/SQL 常用的命令:
    1、打開輸出開關(guān)            SET SERVEROUTPUT ON ;
    2、利用系統(tǒng)包輸出信息     DBMS_OUTPUT.PUT_LINE('x 的值是:' || x);


    二、控制結(jié)構(gòu)

    1、分支語(yǔ)句
    a、IF 分支
    IF ... THEN
        ...
    ELSEIF ...THEN
        ...
    ELSE
        ...
    END IF;

    b、CASE 分支
    CASE
        WHEN ... THEN
            ...
        ELSE
            ...
    END CASE;

    2、循環(huán)語(yǔ)句
    a、基本循環(huán)(LOOP)

    無(wú)條件循環(huán),為避免進(jìn)入無(wú)限循環(huán),LOOP 循環(huán)的語(yǔ)句必須使用 EXIT 或 EXIT WHEN 語(yǔ)句。
    LOOP
        ...
    END LOOP;

    b、WHILE 循環(huán)
    WHILE condition LOOP
        ...
    END LOOP;

    c、FOR 循環(huán)
    FOR counter IN [REVERSE] start..end
    LOOP
        ...
    END LOOP;

    3、順序控制
    GOTO 語(yǔ)句:無(wú)條件的將控制權(quán)轉(zhuǎn)到標(biāo)簽指定的語(yǔ)句。
    NULL 語(yǔ)句:什么也不做,只是將控制權(quán)轉(zhuǎn)到下一條語(yǔ)句,用于語(yǔ)句結(jié)構(gòu)需要,但什么也不需要操作的情況下。
    GOTO xxxx;
          ...
    <<xxxx>>
    NULL;


    三、異常
    系統(tǒng)異常(預(yù)定義異常)
    EXCEPTION
        WHEN xxxx THEN
            ....

    自定義異常
    DECLARE
        -- 自定義異常
        xxxxx EXCEPTION;
    BEGIN
        -- 顯式引發(fā)異常
        RAISE xxxxx
    EXCEPTION
        -- 異常處理
        WHEN xxxxx THEN
            ....
    END; 


    四、復(fù)合變量(記錄)
    記錄是由幾個(gè)相關(guān)值構(gòu)成的復(fù)合變量,常用于支持 SELECT 語(yǔ)句的返回值。使用記錄可以將一行數(shù)據(jù)并到一個(gè)單元進(jìn)行處理,而不必將每一列單獨(dú)處理。
    DECLARE
        TYPE myrecord IS RECORD(id varchar2(10), name varchar2(10));
        real_record myrecord;
    BEGIN
        -- SELECT .. INTO 賦值語(yǔ)句
        SELECT emp_id, emp_name INTO real_record FROM emp WHERE emp_id='001';
        .....
    END;

    或者 可以利用屬性類型來(lái)引用變量或者數(shù)據(jù)庫(kù)中某列的數(shù)據(jù)類型。

      ● 聲明變量 icode,引用表中某列 emp.id 的數(shù)據(jù)類型
        icode emp.id%TYPE;

      ● 聲明變量 emp_rec 引用表 emp 中所有列記錄類型
        emp_rec emp%ROWTYPE;




    posted on 2008-10-23 22:12 黃小二 閱讀(1797) 評(píng)論(0)  編輯  收藏 所屬分類: [DB].Oracle
    主站蜘蛛池模板: 免费无码婬片aaa直播表情| 亚洲av日韩av永久在线观看| 精品国产呦系列在线观看免费 | 久久国产精品国产自线拍免费| 免费一级一片一毛片| 亚洲精品视频在线| 亚洲sm另类一区二区三区| 日韩免费在线观看视频| 热久久精品免费视频| 无码欧精品亚洲日韩一区| 成人免费区一区二区三区| 国产AV无码专区亚洲精品| 国产亚洲视频在线观看| 国产一级淫片免费播放电影| 亚洲免费一级视频| 两个人看的www高清免费观看| 亚洲人成色7777在线观看| 久操视频在线免费观看| 亚洲一区二区电影| 最新欧洲大片免费在线 | 中文字幕 亚洲 有码 在线 | 亚洲经典千人经典日产| 午夜两性色视频免费网站| 草久免费在线观看网站| 亚洲婷婷五月综合狠狠爱| 一区二区三区福利视频免费观看| 亚洲成av人片在线看片| 我要看免费的毛片| 一级毛片免费视频网站| 日韩一区二区在线免费观看| 一区二区视频在线免费观看| 亚洲av丰满熟妇在线播放| 亚洲黄色片免费看| 欧洲亚洲综合一区二区三区| 亚洲精品午夜无码电影网| 日本XXX黄区免费看| 亚洲视频精品在线观看| 6080午夜一级毛片免费看6080夜福利| 亚洲不卡视频在线观看| 亚洲人成在线免费观看| 亚洲A∨无码无在线观看|