Oracle 筆記(七)、PL/SQL 基礎

來源:互聯網
上載者:User

一、概述、PL/SQL 塊結構

二、控制結構(分支、迴圈、控制)
三、異常

四、複合變數(記錄)

一、概述、PL/SQL 塊結構
PL/SQL 是Oracle產品對 SQL 語言的擴充。PL/SQL 塊共分為三個部分:聲明部分、可執行部分、異常部分。

DECLARE
    ...
BEGIN
    ...
EXCEPTION
    ...
END;

變數聲明內容:賦予變數適當的名稱、資料類型、定義變數(標準,記錄)、控制變數範圍。
變數命名規則:變數以字元開頭;可包含數字、底線、$、#;長度範圍 1~30;不區分大小寫;不能使用系統關鍵字。

ps.在 PL/SQL 常用的命令:
1、開啟輸出開關            SET SERVEROUTPUT ON ;
2、利用系統包輸出資訊     DBMS_OUTPUT.PUT_LINE('x 的值是:' || x);

二、控制結構

1、分支語句
a、IF 分支

IF ... THEN
    ...
ELSEIF ...THEN
    ...
ELSE
    ...
END IF;

b、CASE 分支

CASE
    WHEN ... THEN
        ...
    ELSE
        ...
END CASE;

2、迴圈語句
a、基本迴圈(LOOP)

無條件迴圈,為避免進入無限迴圈,LOOP 迴圈的語句必須使用 EXIT 或 EXIT WHEN 語句。

LOOP
    ...
END LOOP;

b、WHILE 迴圈

WHILE condition LOOP
    ...
END LOOP;

c、FOR 迴圈

FOR counter IN [REVERSE] start..end
LOOP
    ...
END LOOP;

3、順序控制
GOTO 語句:無條件的將控制權轉到標籤指定的語句。
NULL 語句:什麼也不做,只是將控制權轉到下一條語句,用於語句結構需要,但什麼也不需要操作的情況下。

GOTO xxxx;
      ...
<<xxxx>>
NULL;


三、異常

系統異常(預定義異常)

EXCEPTION
    WHEN xxxx THEN
        ....



自訂異常

DECLARE
    -- 自訂異常
    xxxxx EXCEPTION;
BEGIN
    -- 顯式引發異常
    RAISE xxxxx
EXCEPTION
    -- 異常處理
    WHEN xxxxx THEN
        ....
END; 


四、複合變數(記錄)
記錄是由幾個相關值構成的複合變數,常用於支援 SELECT 語句的傳回值。使用記錄可以將一行資料併到一個單元進行處理,而不必將每一列單獨處理。

DECLARE
    TYPE myrecord IS RECORD(id varchar2(10), name varchar2(10));
    real_record myrecord;
BEGIN
    -- SELECT .. INTO 指派陳述式
    SELECT emp_id, emp_name INTO real_record FROM emp WHERE emp_id='001';
    .....
END;


或者 可以利用屬性類型來引用變數或者資料庫中某列的資料類型。

  ● 聲明變數 icode,參考資料表中某列 emp.id 的資料類型
    icode emp.id%TYPE;

  ● 聲明變數 emp_rec 參考資料表 emp 中所有列記錄類型
    emp_rec emp%ROWTYPE;

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.