自拍偷在线精品自拍偷,亚洲欧美中文日韩v在线观看不卡

教您如何使用DB2條件處理器處理存儲(chǔ)過程運(yùn)行中的SQL錯(cuò)誤

數(shù)據(jù)庫(kù)
DB2條件處理器用于處理存儲(chǔ)過程運(yùn)行過程中的SQL錯(cuò)誤、SQL警告等。下文對(duì)它的用法作了詳盡的闡述,供您參考學(xué)習(xí)之用。

DB2條件處理器對(duì)于存儲(chǔ)過程來說,有著不可替代的作用。在DB2中,SQL存儲(chǔ)過程可以利用DB2條件處理器(Condition Handler)來處理存儲(chǔ)過程運(yùn)行過程中的SQL錯(cuò)誤(SQLERROR)、SQL警告(SQLWARNING)和沒有數(shù)據(jù)(NOT FOUND)三種常見情況以及你自己定義的觸發(fā)條件,你可以使用包括退出(EXIT)、繼續(xù)(CONTINUE)和撤銷(UNDO)在內(nèi)的三種條件處理器。

在SQL存儲(chǔ)過程運(yùn)行過程中,如果出現(xiàn)了SQLERROR、SQLWARNING和NOT FOUND三種情況,SQL存儲(chǔ)過程將會(huì)自動(dòng)將執(zhí)行SQL語(yǔ)句后的SQLCODE和SQLSTATE存儲(chǔ)在你事先定義好的變量SQLCODE和SQLSTATE中,并觸發(fā)你在存儲(chǔ)過程中定義的條件處理器。

在SQL存儲(chǔ)過程處理錯(cuò)誤,您需要做如下兩步:聲明SQLCODE和SQLSTATE變量、定義條件處理器。在SQL存儲(chǔ)過程中,您通過下列語(yǔ)句聲明SQLCODE和SQLSTATE變量:
DECLARE SQLCODE INTEGER DEFAULT 0;
DECLARE SQLSTATE CHAR(5) DEFAULT '00000';

當(dāng)存儲(chǔ)過程執(zhí)行時(shí),DB2會(huì)自動(dòng)將該SQL語(yǔ)句的返回碼付給這兩個(gè)變量,你可以在調(diào)試程序的時(shí)候,將這兩個(gè)值插入到調(diào)試表中,或者利用條件處理器將這兩個(gè)值返回給調(diào)用者。這樣可以方便SQL存儲(chǔ)過程的調(diào)試。注意:當(dāng)你在SQL存儲(chǔ)過程中存取SQLCODE和SQLSTATE時(shí),DB2會(huì)自動(dòng)將SQLCODE和SQLSTATE置為零。

可以通過下列語(yǔ)句定義DB2條件處理器:
DECLARE handler-type HANDLER FOR condition
SQL-procedure-statement

其中handler-type可以是如下幾種:

CONTINUE:SQL存儲(chǔ)過程在執(zhí)行完條件處理器中的SQL語(yǔ)句后,繼續(xù)執(zhí)行出錯(cuò)SQL語(yǔ)句后邊的SQL語(yǔ)句。

EXIT: SQL存儲(chǔ)過程在執(zhí)行完條件處理器中的SQL語(yǔ)句后,退出存儲(chǔ)過程的執(zhí)行。

UNDO:這種條件處理器僅限于原子動(dòng)作(ATOMIC)復(fù)合SQL語(yǔ)句,SQL存儲(chǔ)過程將會(huì)回滾包含該條件處理器的復(fù)合SQL語(yǔ)句,并在執(zhí)行完該條件處理器中的SQL語(yǔ)句后,繼續(xù)執(zhí)行原子動(dòng)作(ATOMIC)復(fù)合SQL語(yǔ)句后面的SQL語(yǔ)句。

條件包括如下三種常見情況:

SQLEXCEPTION:在SQL執(zhí)行過程中返回任何負(fù)值。

SQLWARNING:在SQL執(zhí)行過程中出現(xiàn)警告(SQLWARN0為'W'),或者是任何不是+100的正的SQL返回值,相應(yīng)的SQLSTATE以'01'開始。

NOT FOUND:SQL返回值為+100或者SQLSTATE以'02'開始。
當(dāng)然你也可以使用DECLARE語(yǔ)句為特定的SQLSATE定義你自己的條件。

 

 

【編輯推薦】

DB2日期格式更改的實(shí)現(xiàn)

DB2日期時(shí)間的基礎(chǔ)知識(shí)

DB2刪除數(shù)據(jù)時(shí)的小技巧

DB2事件監(jiān)控的命令

教您如何實(shí)現(xiàn)DB2在線導(dǎo)入

責(zé)任編輯:段燃 來源: 互聯(lián)網(wǎng)
相關(guān)推薦

2011-04-11 10:11:25

DB2SQL錯(cuò)誤

2010-08-17 15:31:54

DB2 存儲(chǔ)過程

2010-11-03 10:12:49

DB2異常處理器

2010-09-01 09:32:08

DB2恢復(fù)

2010-11-03 14:28:15

DB2行轉(zhuǎn)列

2010-11-04 13:50:20

DB2在線導(dǎo)入

2010-11-03 11:02:34

DB2存儲(chǔ)過程

2010-11-03 11:30:56

DB2表空間擴(kuò)容

2010-09-03 14:14:16

SQL刪除

2010-08-27 14:54:21

DB2批處理腳本

2010-08-31 15:39:25

DB2存儲(chǔ)過程

2010-08-25 09:56:02

DB2存儲(chǔ)過程

2010-09-30 11:04:47

DB2數(shù)據(jù)庫(kù)卸載

2010-08-18 13:59:04

DB2純SQL存儲(chǔ)過程

2010-09-06 10:54:52

DB2 sql 存儲(chǔ)過

2010-10-12 11:07:34

MySQL存儲(chǔ)過程

2010-11-03 10:35:45

DB2存儲(chǔ)過程

2010-08-26 14:01:59

DB2插入特殊字符

2010-09-30 09:42:22

DB2刪除數(shù)據(jù)

2010-08-25 14:12:47

DB2備份恢復(fù)
點(diǎn)贊
收藏

51CTO技術(shù)棧公眾號(hào)