oracle游標(biāo)的使用

oracle游標(biāo)的使用

ID:39974629

大小:381.00 KB

頁數(shù):29頁

時間:2019-07-16

oracle游標(biāo)的使用_第1頁
oracle游標(biāo)的使用_第2頁
oracle游標(biāo)的使用_第3頁
oracle游標(biāo)的使用_第4頁
oracle游標(biāo)的使用_第5頁
資源描述:

《oracle游標(biāo)的使用》由會員上傳分享,免費(fèi)在線閱讀,更多相關(guān)內(nèi)容在教育資源-天天文庫

1、第十二章光標(biāo)的使用光標(biāo)的概念Oracle光標(biāo)是一種用于輕松的處理多行數(shù)據(jù)的機(jī)制。當(dāng)PL/SQL光標(biāo)查詢返回多行數(shù)據(jù)時,這些記錄組被稱為結(jié)果集。Oracle將這種活動集存儲在您創(chuàng)建的顯示定義的已命名的光標(biāo)中。沒有光標(biāo),Oracle開發(fā)人員必須單獨(dú)地、顯式地取回并管理光標(biāo)查詢選擇的每一條記錄。12.1光標(biāo)的定義與使用顯式光標(biāo)處理需四個PL/SQL步驟:cursor光標(biāo)名稱is查詢語句;open光標(biāo)名稱;Fetch光標(biāo)名稱into變量列表;Close光標(biāo)名稱;12.1光標(biāo)的定義與使用例1.declarecursorc1isselectename,salfromempwherer

2、ownum<11;v_enamevarchar2(10);v_salnumber(7,2);beginopenc1;fetchc1intov_ename,v_sal;whilec1%foundloopdbms_output.put_line(v_ename

3、

4、to_char(v_sal));fetchc1intov_ename,v_sal;endloop;closec1;end;12.1光標(biāo)的定義與使用2.光標(biāo)屬性%found布爾型屬性,當(dāng)最近一次讀記錄時成功返回,則值為true%nofound布爾型屬性,與%found相反.%isopen布爾型屬性,當(dāng)光標(biāo)已打開時返回t

5、rue.%rowcount數(shù)字型屬性,返回已從光標(biāo)中讀取得記錄數(shù).12.1光標(biāo)的定義與使用3.參數(shù)化光標(biāo)在聲明光標(biāo)時,將未確定的參數(shù)說明成變量,在使用光標(biāo)時給出光標(biāo)變量的具體值(相當(dāng)于實參)使得語句可以按照給出的條件進(jìn)行查詢。12.1光標(biāo)的定義與使用例2:DECLARECursorc1(view_patternvarchar2)ISSelectview_namefromall_viewsWhereview_namelikeview_pattern’

6、

7、%ANDrownum<=10Orderbyview_name;Vnamevarchar2(40);BEGINForI1in

8、c1(‘DBA’)loopDBMS_OUTPUT.PUT_LINE(I1.view_name);ENDloop;END;12.1光標(biāo)的定義與使用處理隱式光標(biāo)所有的SQL語句在上下文區(qū)內(nèi)部都是可執(zhí)行的,因此都有一個光標(biāo)指向上下文區(qū),此光標(biāo)就是所謂的SQL光標(biāo)(SQLcursor),與顯式光標(biāo)不同,SQL光標(biāo)不被程序打開和關(guān)閉。12.1光標(biāo)的定義與使用例3:--節(jié)自在線代碼nomat1.sqlBEGINUPDATEroomsSETnumber_seats=100WHEREroom_id=99980;--如果更新沒有匹配則插入一新行IFSQL%NOTFOUNDTHENINSER

9、TINTOrooms(room_id,number_seats)VALUES(99980,100);ENDIF;END;12.1光標(biāo)的定義與使用例4:--節(jié)自在線代碼nomat2.sqlBEGINUPDATEroomsSETnumber_seats=100WHEREroom_id=99980;--如果更新沒有匹配則插入一新行IFSQL%ROWCOUNT=0THENINSERTINTOrooms(room_id,number_seats)VALUES(99980,100);ENDIF;END;12.1光標(biāo)的定義與使用例5:--節(jié)自在線代碼nodata.sqlDECLAREV

10、_roomdatarooms%ROWTYPE;BEGINSelect*intov_roomdatafromroomsWhereroom_id=-1;IFSQL%NOFOUNDTHENINSERTINTOtemp_table(char_col)VALUES(‘NotFound!‘);ENDIF;EXCEPTIONWHENNO_DATA_FOUNDTHENINSERTINTOtemp_table(char_col)VALUES(‘NotFound!exceptionhandle.‘);END;12.2光標(biāo)循環(huán)在高級語言編程和PL/SQL編程中,經(jīng)常使用“提取循環(huán)(fetchl

11、oop)”來實現(xiàn)逐行提取所需數(shù)據(jù)的方法。12.2光標(biāo)循環(huán)LOOP和ENDLOOP來實現(xiàn)簡單循環(huán)。DECLAREV_studentIDstudents.id%TYPE;V_firstNamestudents.first_name%TYPE;V_LastNamestudents.last_name%TYPE;CURSORc_HistoryStudentsISSELECTid,first_name,last_namefromstudentsWHEREmajor=‘History’;BEGINOpenc_HistoryStudents

當(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ò)波動等原因無法下載或下載錯誤,付費(fèi)完成后未能成功下載的用戶請聯(lián)系客服處理。