首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫

Oracle PL/SQL 入門概覽:從架構到實務的核心概念

     編輯:Oracle 資料庫相關知識

為什麼需要 PL/SQL?

SQL 是第 4 代語言(4GL),非程序化、只描述「做什麼」;但複雜業務流程需要「怎麼做」的程序邏輯。PL/SQL 是第 3 代語言(3GL),程序化、支援變數、流程控制、模組化,彌補 SQL 的不足,實現複雜業務規則。

PL/SQL 程式結構

基本單位為 區塊,三段式結構:

DECLARE   -- 宣告區(可選)
  v_id NUMBER;
BEGIN     -- 執行區(必須)
  v_id := 100;
EXCEPTION -- 例外處理區(可選)
  WHEN OTHERS THEN NULL;
END;

變數宣告與賦值

  • 語法:變數名 型別 [NOT NULL] [:= 初值];
  • 賦值運算子為 :=(非 =)
  • 常用型別:NUMBER(p,s)、VARCHAR2(size)、DATE、BOOLEAN

常見控制結構

  • 條件: IF-THEN-ELSE、IF-THEN-ELSIF
  • 迴圈: LOOP-EXIT WHEN、WHILE、FOR i IN 1..10
  • 標籤與 GOTO: <<label>>、GOTO label(限制:不可從外層跳入內層)

游標

指向 DML 查詢結果集的指標,操作三步驟:

  1. OPEN cursor_name;
  2. FETCH cursor_name INTO var1, var2;
  3. CLOSE cursor_name;

亦可使用 FOR rec IN cursor_name LOOP ... END LOOP; 隱式管理。

程式單元

CREATE PROCEDURE name(params) AS ...CREATE FUNCTION name(params) RETURN type AS ...CREATE PACKAGE name AS ... END; CREATE PACKAGE BODY name AS ... END;CREATE TRIGGER name BEFORE INSERT ON table ...

除錯工具建議

  • Oracle 內建 SQL*Plus
  • 推薦 TOAD、PL/SQL Developer、SQL Developer:介面友善、支援中斷點、變數監視、效能分析

學習路徑建議

  1. 掌握區塊結構、變數、流程控制
  2. 熟練游標與例外處理
  3. 撰寫 Procedure/Function 並部署至資料庫
  4. 學習 Package 設計模組化應用
  5. 實作 Trigger 處理跨表業務邏輯
  6. 進階:大量資料處理、動態 SQL、效能調校
  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved
類型特徵語法關鍵字
Procedure無回傳值,執行動作
Function有回傳值,可用於 SQL
Package封裝相關 Procedure/Function/變數,分 Spec 與 Body
Trigger特定事件(DML/DDL/系統)自動觸發