<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(chēng)、數(shù)據(jù)類(lèi)型、定義變量(標(biāo)準(zhǔn),記錄)、控制變量范圍。
    變量命名規(guī)則:變量以字符開(kāi)頭;可包含數(shù)字、下劃線、$、#;長(zhǎng)度范圍 1~30;不區(qū)分大小寫(xiě);不能使用系統(tǒng)關(guān)鍵字。

    ps.在 PL/SQL 常用的命令:
    1、打開(kāi)輸出開(kāi)關(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)型來(lái)引用變量或者數(shù)據(jù)庫(kù)中某列的數(shù)據(jù)類(lèi)型。

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

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




    posted on 2008-10-23 22:12 黃小二 閱讀(1797) 評(píng)論(0)  編輯  收藏 所屬分類(lèi): [DB].Oracle
    主站蜘蛛池模板: 国产精品免费播放| 亚洲黄色免费网址| jlzzjlzz亚洲乱熟在线播放| 亚洲性久久久影院| 亚洲av无码不卡| 亚洲人成人网毛片在线播放| 亚洲人成7777| 男人和女人高潮免费网站| 你懂的免费在线观看| 久久午夜免费视频| 亚洲区小说区图片区QVOD| 亚洲第一成年人网站| 草久免费在线观看网站| 日韩免费人妻AV无码专区蜜桃 | 全免费一级午夜毛片| 亚洲中文字幕在线观看| 日本亚洲免费无线码 | 在线免费播放一级毛片| 免费观看成人毛片a片2008| 69免费视频大片| 国产福利电影一区二区三区,亚洲国模精品一区 | 永久免费视频网站在线观看| 免费又黄又爽又猛的毛片| 亚洲国产综合精品| 久久这里只精品99re免费| 免费人成网站在线高清| 亚洲国产精品yw在线观看| 99免费精品视频| 亚洲美日韩Av中文字幕无码久久久妻妇| 亚洲一本综合久久| 暖暖免费日本在线中文| 亚洲精品国产精品乱码视色 | 午夜老司机免费视频| 亚洲免费在线视频观看| 成人免费观看一区二区| 久久久亚洲欧洲日产国码是AV| 在线观看肉片AV网站免费| 亚洲一区二区三区乱码A| 成人免费一区二区三区| 日本亚洲视频在线| 免费A级毛片无码专区|