亚洲精品久久久中文字幕-亚洲精品久久片久久-亚洲精品久久青草-亚洲精品久久婷婷爱久久婷婷-亚洲精品久久午夜香蕉

您的位置:首頁技術(shù)文章
文章詳情頁

DB2中游標(biāo)的使用方法以及存儲(chǔ)過程的寫法

瀏覽:60日期:2023-11-09 17:15:12

問題1:

什么時(shí)候才會(huì)發(fā)生not found異常 ,以及db2中sqlcode的值是如何變化的?

在db2中,一條select 語句也有可能發(fā)生not found異常,譬如:

declare sqlcode integer default 0;

declare sql_code integer default 0;

declare classCode varchar(40) ;

select app_class_code into classCode from kf_app_class where app_name='無效記錄';

set sql_code=sqlcode;

如果此時(shí)沒有檢索到記錄,那么sqlcode的值為100,有的話為0;

我們可以定義NOT FOUND 異常處理

declare sqlcode integer default 0;

declare sql_code integer default 0;

declare classCode varchar(40) ;

begin

declare continue handler for not found

begin

--注如果發(fā)生not found那么此時(shí)的sqlcode必定為100

set sql_code=sqlcode;/*在這里sqlcode的值為100;*/

--如果再次得到sqlcode的值那么它的值變?yōu)?

set sql_code=sqlcode;/*這里sqlcode變成了0,因?yàn)樯弦粭l語句執(zhí)行成功了,那么sqlcode變成了0*/

end;

select app_class_code into classCode from kf_app_class where app_name='無效記錄';

set sql_code=sqlcode;/*同理此時(shí)如果沒有取到數(shù)據(jù),那么會(huì)進(jìn)declare continue handler ,返回后sqlcode的值也為0*/

end;

所以我們可以通過兩種方法來捕獲和處理not found

方法1:

begin

declare continue handler for not found

begin

--異常處理代碼

end;

sql語句

end;

方法2:

begin

sql語句

if sqlcode=100 then

--異常處理代碼

end if;

end;

問題2:

定義了游標(biāo),怎么fecth一條記錄,怎么進(jìn)行循環(huán)?

Q:定義了游標(biāo)假設(shè)發(fā)生not found 異常,那么是在open cursorName的時(shí)候還是在fecth的時(shí)候發(fā)生異常?

A:檢驗(yàn)游標(biāo)中的數(shù)據(jù)是否取完或者有無記錄,應(yīng)該在fecth的時(shí)候,而不是發(fā)生在open cursorName的時(shí)候,

下面一個(gè)例子詳細(xì)的說明了游標(biāo)使用過程:

begin

declare sqlcode integer default 0;

declare app_code varchar(10);

declare cursor1 cursor for select app_code from kf_app_class ;

open cursor1;

cursorLoop:

loop

fecth cursor1 into app_code ;

if sqlcode=100 then leave cursorLoop;

end if;

end loop;

end;

sqlcode 可以直接用嗎?

A:在db2中,如果要使用sqlcode那么必須在使用前declare;

譬如

declare sqlcode integer default 0;

if sqlcode =? then

end if;

附注

db2的其他異常處理

對(duì)應(yīng) oracle的 when other exceptions

declare exit handler for sqlwaring,sqlexcption

begin

--處理異常

end;

當(dāng)程序執(zhí)行exit handler異常處理后,那么會(huì)退出程序,不會(huì)在接著執(zhí)行,也就是

declare exit handler for sqlwaring,sqlexcption

begin

--處理異常

end;

sql語句1;

sql語句2;

執(zhí)行sql語句1發(fā)生異常,會(huì)進(jìn)入 exit handler ,然后退出程序,不會(huì)在執(zhí)行 sql語句2

標(biāo)簽: DB2 數(shù)據(jù)庫
主站蜘蛛池模板: 久久99精品久久久久久 | 美国三级网站 | 398av影院视频在线 | 亚洲毛片在线观看 | 自拍 欧美 | 一级做a爰片性色毛片黄书 一级做a爰片性色毛片新版的 | 日韩免费不卡视频 | 在线观看香蕉免费啪在线观看 | 国产免费资源高清小视频在线观看 | 99九九视频 | 日韩精品免费一区二区三区 | 中文字幕在线观看一区 | 欧美三级蜜桃2在线观看 | 国产精品极品美女自在线看免费一区二区 | 一级特黄国产高清毛片97看片 | 黄片毛片在线观看 | 99热99re| 免费不卡毛片 | 日本中文字幕有码 | 亚洲自偷自拍另类12p | 亚洲九九香蕉 | 香蕉视频网站 | 国产视频资源在线观看 | 99久久精品免费国产一区二区三区 | 香蕉视频网页版 | 国产精品免费αv视频 | 澳门一级毛片免费播放 | 国语精品视频在线观看不卡 | 岛国片在线播放 | 黑人一区二区 | 欧美性一级交视频 | 国产成人国产在线观看入口 | 九九精品免视看国产成人 | 欧美人成人亚洲专区中文字幕 | 伊人影院在线观看视频 | 国产小视频在线观看 | 国产小视频91 | 国产精品美女网站在线看 | 国产精品1区2区 | 国产在线精品一区二区高清不卡 | 99成人在线 |