DECLARE GLOBAL TEMPORARY TABLE 陳述式建立,且只能建立於使用者暫存表空間。CREATE USER TEMPORARY TABLESPACE)。SESSION schema,無法指定其他 schema。COMMIT 時暫存表所有資料列會被刪除;可透過建立時指定 ON COMMIT PRESERVE ROWS 保留資料。ROLLBACK 時,使用者暫存表會被自動刪除(結構與資料皆移除)。ON COMMIT 行為:臨時運算結果用 DELETE ROWS,跨 Transaction 共享資料用 PRESERVE ROWS。ROLLBACK 導致結構遺失風險。NOT LOGGED 選項(若不需復原)可減少日誌寫入,提升大量資料暫存效能。SNAPSHOT FOR TABLESPACES),防止空間耗盡導致應用失敗。| 錯誤現象 | 可能原因 | 解決方向 |
|---|---|---|
| 建表失敗 SQLCODE -204 | 不存在使用者暫存表空間 | 建立 USER TEMPORARY TABLESPACE |
| Commit 後資料消失 | 未指定 ON COMMIT PRESERVE ROWS | 修改建表語句加入保留選項 |
| Rollback 後表不存在 | 預設行為:Rollback 刪除暫存表 | 調整交易邊界或改用永久表 |
掌握這六大特性與最佳實踐,即能在 DB2 中安全、高效地運用暫存表解決複雜中間運算與資料轉換需求。