




版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡介
1、7.1 游標(biāo)的創(chuàng)建與應(yīng)用,經(jīng)1106 徐曉碩 學(xué)號20111189,1. 游標(biāo)的概念,2. 顯式游標(biāo),4.隱式游標(biāo),1.游標(biāo)的概念,背景由來 當(dāng)SELECT語句在PL/SQL程序塊中使用時(shí), 要求查詢結(jié)果中只能包含一條記錄, 若查詢出來的數(shù)據(jù)多于一行,則執(zhí)行出錯(cuò)。 這時(shí)候就需要用到游標(biāo)。,1.游標(biāo)的概念,Oracle游標(biāo)的概念 游標(biāo)是ORACLE系統(tǒng)在內(nèi)存中開辟的一個(gè)工作區(qū),在其中存放SELECT語句返回的查詢結(jié)果。這個(gè)查詢結(jié)果既可以是零記錄,單條記錄,也可以是多條記錄.在游標(biāo)所定義的工作區(qū)中,存在著一個(gè)指針(POINTER),在初始狀態(tài)它指向查詢結(jié)果的首記錄.,1.游標(biāo)的概念,Oracle游
2、標(biāo)的類型 隱式游標(biāo): 是oracle為所有數(shù)據(jù)操縱語句(包括只返回單行數(shù)據(jù)的查詢語句)自動聲明和操作的一種游標(biāo)(名字是sql)。顯式游標(biāo): 用戶顯示聲明的游標(biāo),即指定結(jié)果集。當(dāng)查詢返回結(jié)果超過一行時(shí),就需要一個(gè)顯式游標(biāo)。,2.顯式游標(biāo),顯式游標(biāo)的使用過程,1.定義游標(biāo) 2.打開游標(biāo) 3.提取游標(biāo) 4.處理數(shù)據(jù) 5.關(guān)閉游標(biāo),1.定義游標(biāo),語法: CURSOR 游標(biāo)名 IS SELECT語句; 例子: CURSOR c1 IS SELECT*FROM emp;,2.打開游標(biāo),語法: OPEN 游標(biāo)名 ; 例子: OPEN c1 ;,3.提取數(shù)據(jù),游標(biāo)被打開后,使用FETCH語句獲取游標(biāo)正在指向的
3、結(jié)果集中的記錄,語句執(zhí)行后游標(biāo)的指針自動下移,指向下一條記錄。 每執(zhí)行一次FETCH語句,游標(biāo)只獲取一行記錄。,3.提取數(shù)據(jù),語法: FETCH 游標(biāo)名 INTO 變量名; 例子: FETCH c1 INTO emp_rec; 其中emp_rec是已定義好的和emp 結(jié)構(gòu)相同的記錄變量。,4.處理數(shù)據(jù),上一步已經(jīng)將游標(biāo)指向的當(dāng)期行記錄通過FETCH語句提取出來并放到變量(emp_rec)中,接下來就可以對這些變量中的數(shù)據(jù)進(jìn)行處理了。 例:將emp_rec中的數(shù)據(jù)輸出 dbms_output.put_line(姓名是:|emp_rec.ename);,5.關(guān)閉游標(biāo),語法: CLOSE 游標(biāo)名;
4、例子: CLOSE c1;,首先創(chuàng)建一個(gè)表,查看表中的信息,游標(biāo)的聲明與使用,游標(biāo)的聲明與使用,每執(zhí)行一次FETCH語句,游標(biāo)只獲取一行記錄,5次FETCH操作,游標(biāo)的聲明與使用,FETCH語句指向最后記錄,將不再移動,6次FETCH操作,2.顯式游標(biāo),游標(biāo)的常用屬性,1.%ISOPEN 屬性 2.%FOUND 屬性 3.%NOTFOUND屬性 4.%ROWCOUNT屬性,1.%ISOPEN屬性,判斷游標(biāo)是否打開。打開返回值為TURE, 未打開返回值為FALSE。 語法: 游標(biāo)名%ISOPEN; 例子: IF c1%ISOPEN THEN ;,2.%FOUND屬性,判斷游標(biāo)是否從結(jié)果集中取到數(shù)
5、據(jù)。取到返回值為TURE, 未取到返回值為FALSE。 語法: 游標(biāo)名%FOUND; 例子: IF c1%FOUND THEN ;,3.%NOTFOUND屬性,與%FOUND相反。未取到數(shù)據(jù)返回值為TURE, 取到數(shù)據(jù)返回值為FALSE。 語法: 游標(biāo)名%NOTFOUND; 例子: IF c1%NOTFOUND THEN ;,4.%ROWCOUNT屬性,表示游標(biāo)從查詢結(jié)果集中已經(jīng)獲取到的記錄總數(shù)。 語法: 游標(biāo)名%ROWCOUNT; 例子: FETCH c1 INTO emp_rec; IF c1%ROWCOUNT10 THEN ;,2.顯式游標(biāo),顯式游標(biāo)的循環(huán),1.游標(biāo)的LOOP循環(huán) 2.游
6、標(biāo)的FOR 循環(huán),1.游標(biāo)的LOOP循環(huán),語法: LOOP FETCH 游標(biāo)名INTO 變量名; EXIT WHEN 游標(biāo)名%NOTFOUND;ENDLOOP; LOOP循環(huán)中的FETCH語句重復(fù)執(zhí)行,當(dāng)FETCH語句不能從游標(biāo)的當(dāng)前行取出數(shù)據(jù)時(shí),循環(huán)結(jié)束。,游標(biāo)的聲明與使用,2.游標(biāo)的FOR循環(huán) 語法: FOR 變量名 IN 游標(biāo)名 LOOP 數(shù)據(jù)處理語句; END LOOP;,2.游標(biāo)的FOR循環(huán) 特點(diǎn): FOR循環(huán)中循環(huán)控制變量不需要事先定義 FOR循環(huán)之前,系統(tǒng)能自動打開游標(biāo);循環(huán)結(jié)束后,系統(tǒng)自動關(guān)閉游標(biāo)。 FOR循環(huán)過程中,自動執(zhí)行FETCH語句。,3.帶參數(shù)的游標(biāo),背景由來 在前面
7、介紹游標(biāo)的例子中,SELECT語句都沒有WHERE子句,或者用WHERE子句指定了一個(gè)固定的條件,這樣每次都查詢同樣的數(shù)據(jù)。在更多的情況下,可能要根據(jù)實(shí)際情況查詢不同的數(shù)據(jù)。要怎么辦?,3.帶參數(shù)的游標(biāo),背景由來 為了通過游標(biāo)對數(shù)據(jù)進(jìn)行更加靈活的處理,可以為游標(biāo)定義參數(shù),這些參數(shù)可以用在WHERE子句中。在打開游標(biāo)時(shí),指定實(shí)際的參數(shù)值,這樣游標(biāo)在每次打開時(shí),可以根據(jù)不同的實(shí)際參數(shù)值,返回所需的不同數(shù)據(jù)。,3.帶參數(shù)的游標(biāo),定義格式 語法: CURSOR 游標(biāo)名(參數(shù)名 數(shù)據(jù)類型 DEFAULT 默認(rèn)值) IS SELECT語句; 參數(shù)需要指明參數(shù)名及其數(shù)據(jù)類型。 參數(shù)只定義數(shù)據(jù)類型,沒有大小。 可以給參數(shù)設(shè)定一個(gè)缺省值,當(dāng)沒有參數(shù)值傳遞給游標(biāo)時(shí),就使用缺省值。,4.隱式游標(biāo),背景由來 DML操作和單行SELECT語句會使用隱式游標(biāo)(名字是sql),它們是: * 插入操作:INSERT。 * 更新操作:U
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 河里取水口施工方案
- 育兒知識手冊模板
- 特種作業(yè)安全知識
- 配電自動化施工方案
- 鄭州電子商務(wù)職業(yè)學(xué)院《高級分子生物學(xué)A》2023-2024學(xué)年第二學(xué)期期末試卷
- 銀川科技學(xué)院《工程施工》2023-2024學(xué)年第二學(xué)期期末試卷
- 石場檔土墻施工方案
- 四川商務(wù)職業(yè)學(xué)院《綜合英語六》2023-2024學(xué)年第二學(xué)期期末試卷
- 中南財(cái)經(jīng)政法大學(xué)《程序設(shè)計(jì)》2023-2024學(xué)年第二學(xué)期期末試卷
- 2025至2031年中國有機(jī)綠茶茶葉行業(yè)投資前景及策略咨詢研究報(bào)告
- 2024年衛(wèi)生資格(中初級)-初級藥師筆試歷年真題薈萃含答案
- 《中華民族共同體概論》考試復(fù)習(xí)題庫(含答案)
- 操作規(guī)程:視頻監(jiān)控系統(tǒng)的維護(hù)和巡檢
- 首都體育學(xué)院碩士研究生培養(yǎng)方案
- 預(yù)防打架主題班會
- 《礦產(chǎn)地質(zhì)勘查規(guī)范 花崗偉晶巖型高純石英原料》(編制說明編寫要求)
- “五型五好”班組創(chuàng)建活動參考總結(jié)
- 小學(xué)生預(yù)防傳染病主題班會
- 印章刻制服務(wù)投標(biāo)方案(技術(shù)標(biāo))
- 海底撈門店勞動合同
- 基準(zhǔn)地價(jià)技術(shù)報(bào)告
評論
0/150
提交評論