版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
1、7.1 游標(biāo)的創(chuàng)建與應(yīng)用,經(jīng)1106 徐曉碩 學(xué)號(hào)20111189,1. 游標(biāo)的概念,2. 顯式游標(biāo),4.隱式游標(biāo),1.游標(biāo)的概念,背景由來(lái) 當(dāng)SELECT語(yǔ)句在PL/SQL程序塊中使用時(shí), 要求查詢結(jié)果中只能包含一條記錄, 若查詢出來(lái)的數(shù)據(jù)多于一行,則執(zhí)行出錯(cuò)。 這時(shí)候就需要用到游標(biāo)。,1.游標(biāo)的概念,Oracle游標(biāo)的概念 游標(biāo)是ORACLE系統(tǒng)在內(nèi)存中開(kāi)辟的一個(gè)工作區(qū),在其中存放SELECT語(yǔ)句返回的查詢結(jié)果。這個(gè)查詢結(jié)果既可以是零記錄,單條記錄,也可以是多條記錄.在游標(biāo)所定義的工作區(qū)中,存在著一個(gè)指針(POINTER),在初始狀態(tài)它指向查詢結(jié)果的首記錄.,1.游標(biāo)的概念,Oracle游
2、標(biāo)的類型 隱式游標(biāo): 是oracle為所有數(shù)據(jù)操縱語(yǔ)句(包括只返回單行數(shù)據(jù)的查詢語(yǔ)句)自動(dòng)聲明和操作的一種游標(biāo)(名字是sql)。顯式游標(biāo): 用戶顯示聲明的游標(biāo),即指定結(jié)果集。當(dāng)查詢返回結(jié)果超過(guò)一行時(shí),就需要一個(gè)顯式游標(biāo)。,2.顯式游標(biāo),顯式游標(biāo)的使用過(guò)程,1.定義游標(biāo) 2.打開(kāi)游標(biāo) 3.提取游標(biāo) 4.處理數(shù)據(jù) 5.關(guān)閉游標(biāo),1.定義游標(biāo),語(yǔ)法: CURSOR 游標(biāo)名 IS SELECT語(yǔ)句; 例子: CURSOR c1 IS SELECT*FROM emp;,2.打開(kāi)游標(biāo),語(yǔ)法: OPEN 游標(biāo)名 ; 例子: OPEN c1 ;,3.提取數(shù)據(jù),游標(biāo)被打開(kāi)后,使用FETCH語(yǔ)句獲取游標(biāo)正在指向的
3、結(jié)果集中的記錄,語(yǔ)句執(zhí)行后游標(biāo)的指針自動(dòng)下移,指向下一條記錄。 每執(zhí)行一次FETCH語(yǔ)句,游標(biāo)只獲取一行記錄。,3.提取數(shù)據(jù),語(yǔ)法: FETCH 游標(biāo)名 INTO 變量名; 例子: FETCH c1 INTO emp_rec; 其中emp_rec是已定義好的和emp 結(jié)構(gòu)相同的記錄變量。,4.處理數(shù)據(jù),上一步已經(jīng)將游標(biāo)指向的當(dāng)期行記錄通過(guò)FETCH語(yǔ)句提取出來(lái)并放到變量(emp_rec)中,接下來(lái)就可以對(duì)這些變量中的數(shù)據(jù)進(jìn)行處理了。 例:將emp_rec中的數(shù)據(jù)輸出 dbms_output.put_line(姓名是:|emp_rec.ename);,5.關(guān)閉游標(biāo),語(yǔ)法: CLOSE 游標(biāo)名;
4、例子: CLOSE c1;,首先創(chuàng)建一個(gè)表,查看表中的信息,游標(biāo)的聲明與使用,游標(biāo)的聲明與使用,每執(zhí)行一次FETCH語(yǔ)句,游標(biāo)只獲取一行記錄,5次FETCH操作,游標(biāo)的聲明與使用,FETCH語(yǔ)句指向最后記錄,將不再移動(dòng),6次FETCH操作,2.顯式游標(biāo),游標(biāo)的常用屬性,1.%ISOPEN 屬性 2.%FOUND 屬性 3.%NOTFOUND屬性 4.%ROWCOUNT屬性,1.%ISOPEN屬性,判斷游標(biāo)是否打開(kāi)。打開(kāi)返回值為TURE, 未打開(kāi)返回值為FALSE。 語(yǔ)法: 游標(biāo)名%ISOPEN; 例子: IF c1%ISOPEN THEN ;,2.%FOUND屬性,判斷游標(biāo)是否從結(jié)果集中取到數(shù)
5、據(jù)。取到返回值為TURE, 未取到返回值為FALSE。 語(yǔ)法: 游標(biāo)名%FOUND; 例子: IF c1%FOUND THEN ;,3.%NOTFOUND屬性,與%FOUND相反。未取到數(shù)據(jù)返回值為TURE, 取到數(shù)據(jù)返回值為FALSE。 語(yǔ)法: 游標(biāo)名%NOTFOUND; 例子: IF c1%NOTFOUND THEN ;,4.%ROWCOUNT屬性,表示游標(biāo)從查詢結(jié)果集中已經(jīng)獲取到的記錄總數(shù)。 語(yǔ)法: 游標(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),語(yǔ)法: LOOP FETCH 游標(biāo)名INTO 變量名; EXIT WHEN 游標(biāo)名%NOTFOUND;ENDLOOP; LOOP循環(huán)中的FETCH語(yǔ)句重復(fù)執(zhí)行,當(dāng)FETCH語(yǔ)句不能從游標(biāo)的當(dāng)前行取出數(shù)據(jù)時(shí),循環(huán)結(jié)束。,游標(biāo)的聲明與使用,2.游標(biāo)的FOR循環(huán) 語(yǔ)法: FOR 變量名 IN 游標(biāo)名 LOOP 數(shù)據(jù)處理語(yǔ)句; END LOOP;,2.游標(biāo)的FOR循環(huán) 特點(diǎn): FOR循環(huán)中循環(huán)控制變量不需要事先定義 FOR循環(huán)之前,系統(tǒng)能自動(dòng)打開(kāi)游標(biāo);循環(huán)結(jié)束后,系統(tǒng)自動(dòng)關(guān)閉游標(biāo)。 FOR循環(huán)過(guò)程中,自動(dòng)執(zhí)行FETCH語(yǔ)句。,3.帶參數(shù)的游標(biāo),背景由來(lái) 在前面
7、介紹游標(biāo)的例子中,SELECT語(yǔ)句都沒(méi)有WHERE子句,或者用WHERE子句指定了一個(gè)固定的條件,這樣每次都查詢同樣的數(shù)據(jù)。在更多的情況下,可能要根據(jù)實(shí)際情況查詢不同的數(shù)據(jù)。要怎么辦?,3.帶參數(shù)的游標(biāo),背景由來(lái) 為了通過(guò)游標(biāo)對(duì)數(shù)據(jù)進(jìn)行更加靈活的處理,可以為游標(biāo)定義參數(shù),這些參數(shù)可以用在WHERE子句中。在打開(kāi)游標(biāo)時(shí),指定實(shí)際的參數(shù)值,這樣游標(biāo)在每次打開(kāi)時(shí),可以根據(jù)不同的實(shí)際參數(shù)值,返回所需的不同數(shù)據(jù)。,3.帶參數(shù)的游標(biāo),定義格式 語(yǔ)法: CURSOR 游標(biāo)名(參數(shù)名 數(shù)據(jù)類型 DEFAULT 默認(rèn)值) IS SELECT語(yǔ)句; 參數(shù)需要指明參數(shù)名及其數(shù)據(jù)類型。 參數(shù)只定義數(shù)據(jù)類型,沒(méi)有大小。 可以給參數(shù)設(shè)定一個(gè)缺省值,當(dāng)沒(méi)有參數(shù)值傳遞給游標(biāo)時(shí),就使用缺省值。,4.隱式游標(biāo),背景由來(lái) DML操作和單行SELECT語(yǔ)句會(huì)使用隱式游標(biāo)(名字是sql),它們是: * 插入操作:INSERT。 * 更新操作:U
溫馨提示
- 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 清潔工程智能化施工合同
- 醫(yī)療機(jī)構(gòu)質(zhì)量管理與合規(guī)
- 工業(yè)園區(qū)道路級(jí)配碎石鋪設(shè)協(xié)議
- 居民燃?xì)馐褂弥笇?dǎo)手冊(cè)
- 苗木花卉買賣合同范本
- 電力公司解除聘用合同說(shuō)明
- 寫字樓交易合同范本
- 水果市場(chǎng)裝卸人員聘用合同
- 航空垃圾特種管理辦法
- 藥品行業(yè)自律規(guī)范要求
- 2024版影視制作公司與演員經(jīng)紀(jì)公司合作協(xié)議3篇
- 新疆大學(xué)答辯模板課件模板
- 數(shù)值分析智慧樹(shù)知到期末考試答案2024年
- (正式版)HGT 22820-2024 化工安全儀表系統(tǒng)工程設(shè)計(jì)規(guī)范
- 2024年浙江省新華書店集團(tuán)招聘筆試參考題庫(kù)附帶答案詳解
- 跨文化溝通心理學(xué)智慧樹(shù)知到期末考試答案2024年
- 《中華民族共同體概論》考試復(fù)習(xí)題庫(kù)(含答案)
- 【綠色評(píng)價(jià)】發(fā)展綠色指標(biāo)評(píng)價(jià)測(cè)試五年級(jí)《英語(yǔ)》第一學(xué)期上冊(cè)期末試卷及答案解析
- 預(yù)制梁場(chǎng)建設(shè)驗(yàn)收標(biāo)準(zhǔn)
- 物理電學(xué)暗箱專題30道
- 三國(guó)志11武將出場(chǎng)時(shí)間地點(diǎn)整理
評(píng)論
0/150
提交評(píng)論