• <ins id="pjuwb"></ins>
    <blockquote id="pjuwb"><pre id="pjuwb"></pre></blockquote>
    <noscript id="pjuwb"></noscript>
          <sup id="pjuwb"><pre id="pjuwb"></pre></sup>
            <dd id="pjuwb"></dd>
            <abbr id="pjuwb"></abbr>

            Prayer

            在一般中尋求卓越
            posts - 1256, comments - 190, trackbacks - 0, articles - 0
              C++博客 :: 首頁(yè) :: 新隨筆 :: 聯(lián)系 :: 聚合  :: 管理

            問(wèn)題1:
            什么時(shí)候才會(huì)發(fā)生not found異常 ,以及db2中sqlcode的值是如何變化的?
                在db2中,一條select 語(yǔ)句也有可能發(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='無(wú)效記錄';
            set sql_code=sqlcode;
            如果此時(shí)沒(méi)有檢索到記錄,那么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語(yǔ)句執(zhí)行成功了,那么sqlcode變成了0*/
            end;
            select app_class_code into classCode from kf_app_class where app_name='無(wú)效記錄';
            set sql_code=sqlcode;/*同理此時(shí)如果沒(méi)有取到數(shù)據(jù),那么會(huì)進(jìn)declare continue handler ,返回后sqlcode的值也為0*/
            end;
            所以我們可以通過(guò)兩種方法來(lái)捕獲和處理not found
            方法1:

            begin
              declare continue handler for not found
              begin
                 --異常處理代碼
              end;
              sql語(yǔ)句
            end;
            方法2:

            begin

              sql語(yǔ)句
              if sqlcode=100 then
              --異常處理代碼
              end if;
            end;
            問(wèn)題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ù)是否取完或者有無(wú)記錄,應(yīng)該在fecth的時(shí)候,而不是發(fā)生在open cursorName的時(shí)候,
            下面一個(gè)例子詳細(xì)的說(shuō)明了游標(biāo)使用過(guò)程

            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;

            Q: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語(yǔ)句1;
            sql語(yǔ)句2;
            執(zhí)行sql語(yǔ)句1發(fā)生異常,會(huì)進(jìn)入 exit handler ,然后退出程序,不會(huì)在執(zhí)行 sql語(yǔ)句2
            執(zhí)行sql語(yǔ)句1發(fā)生異常,會(huì)進(jìn)入 exit handler ,然后退出程序,不會(huì)在執(zhí)行 sql語(yǔ)句2

            午夜精品久久影院蜜桃| 亚洲七七久久精品中文国产| 欧美喷潮久久久XXXXx| 国产精品美女久久久久| 色偷偷888欧美精品久久久| 日韩欧美亚洲国产精品字幕久久久| 久久福利资源国产精品999| 99国产精品久久| 中文字幕无码久久精品青草| 久久精品www| 亚洲中文精品久久久久久不卡| 欧美亚洲国产精品久久蜜芽| 精品国产乱码久久久久久人妻| 国产精品久久久久aaaa| 久久强奷乱码老熟女网站| 国产99久久久国产精免费| 成人免费网站久久久| 伊人色综合久久天天人手人婷| 久久99精品国产99久久6| 狠狠色丁香婷婷久久综合不卡| 婷婷久久五月天| 思思久久99热只有频精品66| 久久久久国色AV免费观看 | 国内精品伊人久久久久网站| 无码国内精品久久人妻蜜桃| 精品久久久久久无码不卡| 久久久久久A亚洲欧洲AV冫| 精品久久久久久| 久久人爽人人爽人人片AV| 伊人久久大香线蕉亚洲| 久久这里有精品| 中文国产成人精品久久不卡| 久久久亚洲裙底偷窥综合| 久久久午夜精品| 久久亚洲国产精品成人AV秋霞| 久久久久亚洲精品男人的天堂| 免费观看久久精彩视频| 色综合久久88色综合天天| 久久久久久国产精品免费免费| 国产精品欧美久久久久天天影视| 青青国产成人久久91网|