PL/SQL 是 Oracle 對標準 SQL 的程序化擴展,整合於資料庫引擎,支援區塊結構、異常處理、模組化重用,能有效減少網路往返、提升批次處理效能。
PL/SQL 核心優勢
- 高效能:整個區塊一次送至伺服器,減少網路交互。
- 完整 SQL 支援:支援所有 SQL 資料型別、函數、物件型別。
- 模組化重用:命名區塊(Procedure/Function/Package)存儲於資料庫,可被其他 PL/SQL 或 SQL 呼叫。
- 安全性:透過 GRANT/REVOKE 控管存取權限。
- 跨平台:純文字原始碼,任何支援 Oracle 的 OS 均可編輯執行。
區塊結構三段式
[DECLARE]
-- 宣告區:變數、常數、游標、例外
BEGIN
-- 執行區:SQL、流程控制、巢狀區塊
[EXCEPTION]
-- 異常處理區:捕捉預定義/自訂例外
END;
匿名 vs 命名區塊
- 匿名區塊:無名稱,不可存儲,用於腳本/工具即時執行。
- 命名區塊:Procedure/Function/Package,永久存儲,支援參數傳遞、編譯依賴追蹤。
子程式引用規則
子程式宣告於外層區塊的 DECLARE 區,可在同區塊的 BEGIN 或 EXCEPTION 區引用。
掌握 PL/SQL 區塊結構,是編寫高效能、可維護資料庫應用程式的基石。