工具操作與介面限制
- 連線配置:資料庫伺服器非本機時,須在「用戶端配置助手」建立連線配置
- 控制中心限制:無法直接增刪改資料,僅能執行 SQL;Quest 工具雖可增資料但不支援複製貼上/Tab 鍵,需逐筆輸入;PB 雖支援儲存格編輯但刪除表按鈕相鄰且無提示,誤觸即刪表
SQL 語法特殊限制
- 視圖不可直接 ORDER BY:需用子查詢包裝
SELECT * FROM (SELECT a,b,c FROM table1 ORDER BY a) AS tab
前提:已套用相關修補程式
儲存程序與函數開發陷阱
- 字串處理:僅有
LTRIM/RTRIM,無 TRIM,去除雙邊空格需 LTRIM(RTRIM())
- INSERT 不支援運算式賦值:必須先賦值給變數
- 呼叫其他儲存程序:參數不能用常數,必須先賦值給變數
- FETCH FIRST n ROWS ONLY:儲存程序中不可用
- 動態 SQL:儲存程序可用,函數不可用
交易與游標行為
- COMMIT/ROLLBACK 自動關閉游標:需謹慎使用單獨提交
- Proc Builder 除錯不穩:記憶體不足易花屏,斷點停留稍久即逾時
日期運算陷阱
- 月末日期 ± MONTH 錯誤:
2004-02-29 + 1 MONTH 會報 SQLSTATE 01506(日期調整修正無效日期)
替代方案:取當月第一天為基準再 ± MONTH
變數賦值語法規範
- 不可用 SELECT ... INTO,必須用
SET var = (SELECT ...) 方式
SET V_SELL_ID = (SELECT COALESCE(RECEIVE_ID,-1) FROM IS_ORDER WHERE ROW_ID=IN_ROW_ID);
SET V_BUY_ID = (SELECT COALESCE(PAY_ID,-1) FROM IS_ORDER WHERE ROW_ID=IN_ROW_ID);
SET V_SUBMIT_DATE = (SELECT DATE(MAX(A.SUBMIT_DATE)) FROM ...);
密碼修改操作補充
修改 DB2 管理員 (Administrator) 密碼步驟:
- 修改系統 Administrator 登入密碼
- 服務管理工具 → DB2 服務屬性 → 登入分頁 → 更新密碼欄位
