理解游標(biāo)(2)游標(biāo)的屬性介紹及不同游標(biāo)類別的案例演示

理解游標(biāo)(2)游標(biāo)的屬性介紹及不同游標(biāo)類別的案例演示

ID:14376404

大?。?4.00 KB

頁數(shù):6頁

時間:2018-07-28

理解游標(biāo)(2)游標(biāo)的屬性介紹及不同游標(biāo)類別的案例演示_第1頁
理解游標(biāo)(2)游標(biāo)的屬性介紹及不同游標(biāo)類別的案例演示_第2頁
理解游標(biāo)(2)游標(biāo)的屬性介紹及不同游標(biāo)類別的案例演示_第3頁
理解游標(biāo)(2)游標(biāo)的屬性介紹及不同游標(biāo)類別的案例演示_第4頁
理解游標(biāo)(2)游標(biāo)的屬性介紹及不同游標(biāo)類別的案例演示_第5頁
資源描述:

《理解游標(biāo)(2)游標(biāo)的屬性介紹及不同游標(biāo)類別的案例演示》由會員上傳分享,免費在線閱讀,更多相關(guān)內(nèi)容在行業(yè)資料-天天文庫。

1、理解游標(biāo)(2)游標(biāo)的屬性介紹及不同游標(biāo)類別的案例演示?相關(guān)鏈接:理解游標(biāo)(1):游標(biāo)的概述??PL/SQL提供了六種游標(biāo)屬性:游標(biāo)屬性名字說明舉例%FOUND如果成功取到記錄就返回true;否則,返回falsebegin?updatetsetname='f'whereid=2;ifSQL%FOUNDthen??dbms_output.put_line('cursorattribute'www.lunwen360.net);endif;end;%NOTFOUND如果沒有成功取到記錄就返回true;否則,返回fa

2、lse%FOUND和%NOTFOUND是相反屬性,到底什么時候使用%FOUND什么時候又該用%NOTFOUND呢?要看使用哪一個屬性表達(dá)得最自然,比如:?www.2cto.com??exitwhennotsql%foundexitwhensql%notfound顯然,后者更自然%ROWCOUNT返回到目前為止,已經(jīng)從游標(biāo)中取出的記錄數(shù)量begin?updatetsetname='f'whereid=2;?dbms_output.put_line('rowsselected:'

3、

4、sql%rowcount);e

5、nd;rowsselected:1%ISOPEN如果游標(biāo)是打開的就返回true;否則,返回false通常用在確保當(dāng)發(fā)生異常情況后游標(biāo)不會一直打開著而不關(guān)閉exception?whenothersthen?ifcursor_name%ISOPENthen??closecursor_name;?endif;%BULK_ROWCOUNT返回forall語句修改的記錄數(shù)量%BULK_EXCEPTIONS返回forall語句修改記錄時出現(xiàn)的異常信息?????我們可以在pl/sql中使用這些游標(biāo)屬性,但不能再sql語句中

6、使用????要使用一個游標(biāo)屬性,只需要在游標(biāo)名字或游標(biāo)變量后面加上%就可以,比如:cursor_name%attribute_name????對于一個隱式游標(biāo),游標(biāo)的名字固定就是“SQL”,比如SQL%FOUND?????下面以t表為例,對各種游標(biāo)類別作簡單使用介紹[sql]?SQL>rollback;???Rollbackcomplete???SQL>select*fromt;???????IDNAME?------------------------------??????1a??????2b??????

7、3c??????4d??????5e??????①隱式游標(biāo)實例:[sql]?begin??--執(zhí)行DML操作??updatetsetname='ff'whereid=5;??--判斷是否有受影響行??ifsql%foundthen???--打印受影響行數(shù)???dbms_output.put_line('影響行數(shù):'

8、

9、sql%rowcount);??endif;??--判斷是否沒有受影響行??ifsql%notfoundthen???dbms_output.put_line('id為5的記錄不存在');??e

10、ndif;??end;??????②無參顯式游標(biāo)實例:[sql]?declare??--聲明游標(biāo)表變量并關(guān)聯(lián)sql??cursorrowListis???select*fromt;??--聲明行變量??--如果上面的查詢語句只有一個查詢字段,這里也可以使用正常的變量聲明方式(v_rowValuevarchar2(20);)。??rowValuet%rowtype;?begin??openrowList;--打開游標(biāo)??--如果確定游標(biāo)中只有一條記錄的話,loop和endloop可以不寫,而exit必須存在于游

11、標(biāo)循環(huán)內(nèi),所以也不需要寫。??loop???fetchrowList????intorowValue;--取出游標(biāo)內(nèi)的值放到rowValue中???exitwhenrowList%notfound;--判斷是否還存在記錄,如果不存在終止游標(biāo)???dbms_output.put_line(rowValue.name);--將取到的值打印,如果查詢只有一個字段這里只需寫變量名即可。??endloop;??closerowList;--關(guān)閉游標(biāo)?end;??????③有參顯式游標(biāo)實例:[sql]?declare??

12、--聲明帶參數(shù)的游標(biāo)變量并關(guān)聯(lián)sql,并將參數(shù)與sql進(jìn)行關(guān)聯(lián)??cursorrowList(c_namevarchar2,c_idnumber)is???select*fromtwheret.name=c_nameandt.id=c_id;??--聲明行變量??--如果上面的查詢語句只有一個查詢字段,這里也可以使用正常的變量聲明方式(v_rowValuevarchar2(20);)。??rowVa

當(dāng)前文檔最多預(yù)覽五頁,下載文檔查看全文

此文檔下載收益歸作者所有

當(dāng)前文檔最多預(yù)覽五頁,下載文檔查看全文
溫馨提示:
1. 部分包含數(shù)學(xué)公式或PPT動畫的文件,查看預(yù)覽時可能會顯示錯亂或異常,文件下載后無此問題,請放心下載。
2. 本文檔由用戶上傳,版權(quán)歸屬用戶,天天文庫負(fù)責(zé)整理代發(fā)布。如果您對本文檔版權(quán)有爭議請及時聯(lián)系客服。
3. 下載前請仔細(xì)閱讀文檔內(nèi)容,確認(rèn)文檔內(nèi)容符合您的需求后進(jìn)行下載,若出現(xiàn)內(nèi)容與標(biāo)題不符可向本站投訴處理。
4. 下載文檔時可能由于網(wǎng)絡(luò)波動等原因無法下載或下載錯誤,付費完成后未能成功下載的用戶請聯(lián)系客服處理。