Posted on 2010-02-09 10:13
Prayer 閱讀(375)
評(píng)論(0) 編輯 收藏 引用 所屬分類(lèi):
DB2
在DB2中使用游標(biāo)的時(shí)候必須謹(jǐn)慎使用commit,可能是因?yàn)閏ommit了以后這個(gè)會(huì)話就關(guān)閉了的原因造成db2報(bào)游標(biāo)未打開(kāi)的錯(cuò)誤,這樣需要注意的是在使用游標(biāo)的時(shí)候里面不可以包括commit之類(lèi)的命令,這樣會(huì)造成游標(biāo)的錯(cuò)誤.在使用while循環(huán)游標(biāo)的時(shí)候我們必須聲明一個(gè)異常,這樣才可以判斷游標(biāo)是否到達(dá)末點(diǎn),就是游標(biāo)在此后將找不到新的量,這里我們必須處理,要不游標(biāo)將一直給最后的一條信息來(lái)循環(huán).需要這樣聲明: declare continue handler for not found begin set v_notfound=1; end; 在游標(biāo)打開(kāi)的時(shí)候給v_notfound=0,然后再去循環(huán),這樣只要游標(biāo)沒(méi)有找到值他將會(huì)給v_notfound賦1,這樣就可以控制循環(huán),并且達(dá)到我們想要的目的. DB2還需要注意的是給一個(gè)類(lèi)型變?yōu)閏har的時(shí)候,系統(tǒng)會(huì)給他補(bǔ)空格,這是我們應(yīng)該給他trim掉.游標(biāo)調(diào)用存儲(chǔ)過(guò)程,如果調(diào)用的存儲(chǔ)過(guò)程有問(wèn)題,系統(tǒng)也是會(huì)報(bào)游標(biāo)未打開(kāi)的錯(cuò)誤.