帶您了解DB2異常處理器類型
DB2異常處理器對于很多剛剛接觸DB2數(shù)據(jù)庫的新人來說還比較陌生,下面就為你分類介紹DB2異常處理器類型,希望對您能有所幫助。
DB2異常處理器類型(handler-type)有以下幾種:
CONTINUE 在處理器操作完成之后,會繼續(xù)執(zhí)行產(chǎn)生這個異常語句之后的下一條語句。
EXIT 在處理器操作完成之后,存儲過程會終止,并將控制返回給調(diào)用者。
UNDO 在處理器操作執(zhí)行之前,DB2會回滾存儲過程中執(zhí)行的SQL操作。在處理器操作完成之后,存儲過程會終止,并將控制返回給調(diào)用者。
異常處理器可以處理基于特定SQLSTATE值的定制異常,或者處理預(yù)定義異常的類。預(yù)定義的3種異常如下所示:
NOT FOUND 標識導(dǎo)致SQLCODE值為+100或者SQLSATE值為02000的異常。這個異常通常在SELECT沒有返回行的時候出現(xiàn)。
SQLEXCEPTIOIN 標識導(dǎo)致SQLCODE值為負的異常。
SQLWARNING 標識導(dǎo)致警告異?;蛘邔?dǎo)致+100以外的SQLCODE正值的異常。
如果產(chǎn)生了NOT FOUND 或者SQLWARNING異常,并且沒有為這個異常定義異常處理器,那么就會忽略這個異常,并且將控制流轉(zhuǎn)向下一個語句。如果產(chǎn)生了SQLEXCEPTION異常,并且沒有為這個異常定義異常處理器,那么存儲過程就會失敗,并且會將控制流返回調(diào)用者。
EXIT處理器會在出現(xiàn)SQLEXCEPTION 或者SQLWARNING異常的時候被調(diào)用。EXIT處理器會在終止SQL程序之前,將名為stmt的變量設(shè)為"ABORTED",并且將控制流返回給調(diào)用者。UNDO處理器會將控制流返回給調(diào)用者之前,回滾存儲過程體中已經(jīng)完成的SQL操作。
【編輯推薦】