close
PL/SQL的 基本架構 :

DECLARE
[宣告]

BEGIN --邏輯的開始
......

EXCEPTION
[錯誤發生的處理]

ENE --邏輯結束




宣告的方式可以為ORACLE的任何型態(NUMBER、VARCHAR2、DATE....),
DECLARE
   TOTAL_COUNT NUMBER(5,2)
   ......

亦可以有TABLE相關的參數(TABLE、VARRAY、RECORD),

ORACLE設定參數值的方法為 :
1.

DECLARE
    TOTAL_COUNT NUMBER(4):=20;
     ......

2.

DECLARE
    TOTAL_COUNT NUMBER(4);

BEGIN
    TOTAL_COUNT := 20;--代表了TOTAL_COUNT代入數字20
        .....
3.

DECLARE
    TOTAL_COUNT NUMBER(4);

BEGIN
    SELECT COUNT(*) INTO TOTAL_COUNT FROM XXXX
    .....


宣告的型態可以設定成TABLE中欄位的型態(%TYPE、%ROWTYPE) :

%TYPE :

DECLARE
    TOTAL_COUNT TABLE.欄位%TYPE; --某個TABLE中的欄位型態
    ....

%ROWTYPE : 

DECLARE
     CURSOR C1 IS
     SELECT * FROM XXXX
     C2 C1%ROWTYPE; --代表了C2與C1的欄位型態會是相同的,亦C1有多少欄位C2就會有多少欄位(欄位名稱亦相同)。


PL/SQL的條件控制式包含了 :
1.IF-THEN-ELSE END IF

DECLARE
    .....
BEGIN
    IF.....THEN
        .........
    ELSE
        BEGIN
            ............
        END;

END;



2.CASE 當限制式更多的時候可以使用
DECLARE
    ......
BEGIN
    ....
    CASE
    WHEN XXX='1'
        ......
    WHEN XXX='2'
        ......
    WHEN XXX='3'
        BEGIN
            ......
            ......
        END;
    ELSE
        .......
END;

回圈的控制

1.LOOP 完全的迴圈必須與EXIT作配合方可跳出無限回圈

DECLARE
    ......
BEGIN

    LOOP
         ......
        TOTAL_COUNT := TOTAL_COUNT+1;
        EXIT WHEN TOTAL_COUNT=10;--當TOTAL_COUNT為10的時候跳出迴圈
        ...
    END LOOP;

END;

2.FOR-LOOP需設定限制回圈

DECLARE
     ......
    BEGIN
       FOR NUM IN 1..10 LOOP
       TOTAL_COUNT := TOTAL_COUNT+NUM;--由1加到10

    END LOOP;
END;

3.WHILE-LOOP 看不懂......

控制順序

1.GOTO (儘量不要使用)

DECLARE
.....
BEGIN
     IF ......THEN
         GOTO AA;
    END IF;

<<AA>>
...........

END;

 

arrow
arrow
    全站熱搜
    創作者介紹
    創作者 werwolf 的頭像
    werwolf

    等待著真實的自由

    werwolf 發表在 痞客邦 留言(1) 人氣()