DB2 缺乏 SQL Server 的 PIVOT 關鍵字,實現交叉表需透過 CASE 搭配聚合函數。參考方案如下:
SELECT location,
MAX(CASE WHEN metric = 'PH' THEN value END) AS PH,
MAX(CASE WHEN metric = 'Hg' THEN value END) AS Hg,
MAX(CASE WHEN metric = 'Fe' THEN value END) AS Fe,
MAX(CASE WHEN metric = 'Mn' THEN value END) AS Mn
FROM data_view
GROUP BY location;
註:文中提及的其他兩種方法經測試或評估為「不好用」或「過於複雜」,不建議採用。
錯誤訊息:Error 500: DB2 SQL error: SQLCODE: -954, SQLSTATE: 57011
根因:應用程式堆疊區不足(APP Heap 不足)。
解決步驟:
DB2 UPDATE DB CFG FOR DBNAME USING APPLHEAPSZ 1024DB2STOP / DB2START)。xxx.0 目錄的上一層。20081007165742)。DB2 RESTORE DATABASE <dbname> INCREMENTAL FROM <imagepath> TAKEN AT <timestamp>
錯誤範例:
SQL2570N 由於作業系統不相容或 RESTORE 指令不正確,
在目標作業系統 "NT-32" 上從來源作業系統 "AIX-32" 建立的備份進行還原失敗。
原因碼:"1"。
官方建議解決方案:
db2move 實用程式。核心提醒:DB2 備份映像檔具有平台專屬性,跨平台直接還原不被支援,務必透過 db2move 或 db2look + 資料匯出入方式進行異構遷移。