DB2 8.1 及舊版建立預存程序需要 C 編譯器環境,若作業系統缺少編譯工具將無法建立。根本解決方案:升級至 DB2 8.2,新版移除 C 編譯器相依性。
CREATE PROCEDURE procedure_name
(IN param1 TYPE, OUT param2 TYPE, ...)
LANGUAGE SQL
BEGIN
-- SQL 程式碼區塊
DECLARE var1 TYPE;
SET var1 = ...;
SELECT ... INTO var1 FROM ...;
...
END
CREATE PROCEDURE 不能與其他 SQL 合併在單一批次中系統預存程序儲於 master 資料庫,前綴 sp_。強烈建議勿使用 sp_ 前綴命名使用者程序,SQL Server 解析順序:master → 限定名稱 → dbo 擁有者,同名使用者程序永不會被執行。
my_proc;1, my_proc;2),DROP my_proc 刪除整組,無法單獨刪除#proc_name,僅建立連線可執行,連線關閉自動刪除##proc_name,所有連線可執行,建立者連線關閉且所有執行結束後刪除tempdb 建立無前綴程序,服務重啟時自動清除