DB2數(shù)據(jù)庫(kù)中一些問(wèn)題的解決方法
在使用DB2數(shù)據(jù)庫(kù)的過(guò)程中,一定免不了會(huì)出現(xiàn)一些問(wèn)題。本文歸納了幾個(gè)常見的DB2數(shù)據(jù)庫(kù)中的問(wèn)題,供您參考,希望對(duì)您有所幫助。
1. 用SQL實(shí)現(xiàn)交叉表格。
SQL Server里提供了Pivot關(guān)鍵字可以幫助實(shí)現(xiàn)交叉表格,但DB2里似乎沒(méi)有等價(jià)的東西。實(shí)現(xiàn)的方法稍微復(fù)雜一點(diǎn),以下是一個(gè)例子。
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
其中data_view表/視圖有l(wèi)ocation、metric和value這三個(gè)字段,數(shù)據(jù)是下面這個(gè)樣子:
location1 PH 1.142575278063135
location1 Hg 0.0018310994140037379
location1 Fe 0.2974983113601452
location1 Mn 0.09548843270448454
location2 PH 6.096025515217242
location2 Hg 0.005575948698159294
location2 Fe 0.32657056877142043
location2 Mn 0.009418315198912612
得到的交叉表:
LOCATION PH Hg Fe Mn
location1 1.142575278063135 0.0018310994140037379 0.2974983113601452 0.09548843270448454
location2 6.096025515217242 0.005575948698159294 0.32657056877142043 0.009418315198912612#p#
參考鏈接:
Pivot Query
另一個(gè)方法(經(jīng)實(shí)驗(yàn)不好用)
又一個(gè)方法(感覺(jué)比較復(fù)雜,沒(méi)試)
2. "Error 500: DB2 SQL error: SQLCODE: -954, SQLSTATE: 57011, SQLERRMC: null"
APP Heap區(qū)不足,用"DB2 UPDATE DB CFG FOR DBNAME USING APPLHEAPSZ 1024"可以解決。注意要重啟DB2以便讓更改生效。
3. 恢復(fù)(Restore)數(shù)據(jù)庫(kù)
在控制中心里,選擇數(shù)據(jù)庫(kù)備份路徑時(shí)要選到xxx.0的上一層,時(shí)間戳要與備份時(shí)一致(可通過(guò)查看備份路徑里的文件夾和文件名得到,如20081007165742)。恢復(fù)數(shù)據(jù)庫(kù)的命令行格式如下:
db2 restore <dbname> incremental from <imagepath> taken at <timestamp>
4、恢復(fù)數(shù)據(jù)庫(kù)時(shí)提示“SQL2570N”
例如:SQL2570N 由于操作系統(tǒng)不兼容或者指定的 RESTORE 命令不正確,所以在目標(biāo)操作系統(tǒng) "NT-32" 上從源操作系統(tǒng) "AIX-32" 上創(chuàng)建的備份進(jìn)行復(fù)原的嘗試失敗。原因碼:"1"。
按照錯(cuò)誤碼(1)對(duì)應(yīng)的用戶響應(yīng),應(yīng)該使用db2move實(shí)用程序:“要使用這個(gè)特定的備份映像,應(yīng)在與創(chuàng)建該備份時(shí)所在的操作系統(tǒng)“復(fù)原兼容”的系統(tǒng)上進(jìn)行復(fù)原。要將數(shù)據(jù)庫(kù)從一種操作系統(tǒng)類型移至另一操作系統(tǒng)類型,請(qǐng)使用 db2move 實(shí)用程序。要了解有關(guān)相互“復(fù)原兼容”的平臺(tái)以及 db2move 實(shí)用程序的詳細(xì)信息,請(qǐng)使用諸如“跨平臺(tái)備份和復(fù)原”或“使用不同操作系統(tǒng)”之類的短語(yǔ)來(lái)在 DB2 信息中心中執(zhí)行搜索”