標籤:class 數字 exit oracle資料庫 不能 2-2 bms 分支 oop
一、SQL基礎語言
DECLARE --聲明a varchar2(10); --變數或對象BEGIN a:=‘小明‘;-- := 表示給一個變數賦值 dbms_output.put_line(a); --輸出用 dbms_output.put_line() END;
二、分支
DECLARE --聲明 A NUMBER(10); B NUMBER(10);BEGIN A := 2; B := 3; IF A < B THEN DBMS_OUTPUT.PUT_LINE(‘a小於b‘); ELSIF A > B THEN --注意 ELSIF 的寫法 DBMS_OUTPUT.PUT_LINE(‘a大於b‘); ELSE DBMS_OUTPUT.PUT_LINE(‘a等於b‘); END IF; END;
三、迴圈第一種:(loop迴圈)
DECLARE M NUMBER(5); BEGIN M := 5; LOOP EXIT WHEN M < 0; DBMS_OUTPUT.PUT_LINE(M); M := M - 1; END LOOP; END;
執行結果:
第二種:(while 迴圈)
DECLARE M NUMBER(5);BEGIN M := 5; WHILE M > 0 LOOP --while 迴圈 DBMS_OUTPUT.PUT_LINE(M); M := M - 1; END LOOP;END;
執行結果:
第三種:(for迴圈)
DECLAREBEGIN FOR N IN 1 .. 5 LOOP --for 迴圈只能遍曆像1~5這樣的有規律的數字 DBMS_OUTPUT.PUT_LINE(N); END LOOP;END;
執行結果:
四、處理異常
DECLARE M NUMBER(10); SNAME VARCHAR2(10);BEGIN M := 5; SELECT S.NAME INTO SNAME FROM Z_STUDENT S WHERE S.ID = M; DBMS_OUTPUT.PUT_LINE(‘查詢結果:‘ || SNAME);END;
執行結果:
然後拋出異常 exception
DECLARE M NUMBER(10); SNAME VARCHAR2(10);BEGIN M := 50; --改個不存在的值 SELECT S.NAME INTO SNAME FROM Z_STUDENT S WHERE S.ID = M; DBMS_OUTPUT.PUT_LINE(‘查詢結果:‘ || SNAME);EXCEPTION --拋出異常 WHEN NO_DATA_FOUND THEN DBMS_OUTPUT.PUT_LINE(‘沒有查詢到資料‘); END;
執行結果:
再舉個例子:
DECLARE --聲明 A NUMBER(10); B NUMBER(10); NOZERO EXCEPTION; --定義nozero 為異常類型BEGIN A := 2; B := 0; IF A = 0 OR B = 0 THEN RAISE NOZERO; --RAISE 拋出異常 END IF; IF A < B THEN DBMS_OUTPUT.PUT_LINE(‘a小於b‘); ELSIF A > B THEN --注意 ELSIF 的寫法 DBMS_OUTPUT.PUT_LINE(‘a大於b‘); ELSE DBMS_OUTPUT.PUT_LINE(‘a等於b‘); END IF;EXCEPTION WHEN NOZERO THEN DBMS_OUTPUT.PUT_LINE(‘a和b都不能為0!‘); WHEN OTHERS THEN DBMS_OUTPUT.PUT_LINE(‘其他異常!‘); END;
執行結果為:
Oracle資料庫之SQL基礎和分支迴圈