PL/SQL 優勢
- 高效能交易處理語言,支援所有資料操作指令
- 完整支援 SQL 資料型別、函數與物件型別
- 程式單元可命名儲存於資料庫,支援跨工具呼叫與重用
- 可透過資料庫工具管理安全性 (GRANT/REVOKE)
- 純文字編輯,跨平台便利
- 整塊傳送至伺服器,減少網路往返與擁塞
PL/SQL 區塊結構
[DECLARE]
-- 宣告區:變數、常數、游標、例外
BEGIN
-- 執行區:可執行陳述式、巢狀區塊
[EXCEPTION]
-- 例外處理區
END;
- 每句以分號結束
- SQL 可跨行,分號為界
- 單行可多句,分號分隔
- 以 BEGIN 或 DECLARE 起始,END 結束
- 註解
--
區塊命名與匿名
- 匿名區塊:用戶端/伺服器端均可執行
- 命名區塊:可置於宣告區,供執行區/例外區呼叫 (子程式)
四大可儲存程式單元
- 函數:有回傳值,
FUNCTION NAME(PARAMS) RETURN TYPE IS ... END;
- 程序:無回傳值,
PROCEDURE NAME(PARAMS) IS ... END;,以 EXECUTE 或 PL/SQL 內部呼叫
- 套件:相關物件集合,含規格與主體,首次呼叫載入記憶體加速存取
- 觸發器:繫結表/資料庫事件,事件發生自動觸發
PL/SQL 引擎架構
SQL 執行器處理單一 SQL;PL/SQL 引擎處理程式區塊,區塊內 SQL 再交由 SQL 執行器。緊密整合提升開發效率。