db2fmp 中執行,記憶體空間隔離。若程式碼崩潰不會影響 DB2 引擎進程,安全性較高。db2sysc) 空間執行,效能較好 (無進程切換開銷),但程式碼錯誤可能導致資料庫管理程序異常終止。呼叫回傳結果集/暫存表/輸出參數的巢狀 SP 時,DB2 會自動產生 SQLCODE=0, SQLSTATE='01000' 的警告。若統一記錄所有 Warning 會產生大量雜訊。
解決模式:使用旗標變數區分「真正錯誤」與「預期警告」。
DECLARE V_STATUS INTEGER DEFAULT 0;
CALL OTHER_SP(...);
SET V_STATUS = 1; -- 標記預期呼叫完成
DECLARE CONTINUE HANDLER FOR SQLWARNING
BEGIN
IF V_STATUS <> 1 THEN
-- 真正的警告處理:寫入日誌
INSERT INTO LOG_TABLE(...) VALUES (...);
SET V_STATUS = 0;
END IF;
END;
db2 import from gh1.out of DEL messages err.txt insert into db2inst1.tb_dbf_match_ha
db2inst1.),否則預設使用目前使用者 Schema,易導致「找不到表」錯誤。messages err.txt 將匯入訊息導向檔案,方便事後稽核。SET var = ... 可合併為單一 VALUES (expr1, expr2, ...) INTO var1, var2, ...,減少語句解析開銷。VALUES (NULL) INTO var 會報錯,無法直接指派 NULL,需改用 SET var = NULL。SELECT * FROM TB_HEAD_STOCK_BALANCE WITH UR
UR (Uncommitted Read):髒讀,效能最好,適合唯讀報表。CS (Cursor Stability, 預設)、RS (Read Stability)、RR (Repeatable Read)。LOAD 不寫入交易日誌 (可設 NONRECOVERABLE),速度遠快於 SELECT INTO 或 INSERT。EXPORT 導出資料 → LOAD 載入目標表。本節收錄資料庫啟動/停用、連線管理、配置參數調整等實務指令,詳細內容請見後續章節 (六) 至 (十)。