




版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(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程序塊中使用時, 要求查詢結(jié)果中只能包含一條記錄, 若查詢出來的數(shù)據(jù)多于一行,則執(zhí)行出錯。 這時候就需要用到游標(biāo)。,1.游標(biāo)的概念,Oracle游標(biāo)的概念 游標(biāo)是ORACLE系統(tǒng)在內(nèi)存中開辟的一個工作區(qū),在其中存放SELECT語句返回的查詢結(jié)果。這個查詢結(jié)果既可以是零記錄,單條記錄,也可以是多條記錄.在游標(biāo)所定義的工作區(qū)中,存在著一個指針(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é)果超過一行時,就需要一個顯式游標(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)建一個表,查看表中的信息,游標(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ù)時,循環(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) 特點: 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子句指定了一個固定的條件,這樣每次都查詢同樣的數(shù)據(jù)。在更多的情況下,可能要根據(jù)實際情況查詢不同的數(shù)據(jù)。要怎么辦?,3.帶參數(shù)的游標(biāo),背景由來 為了通過游標(biāo)對數(shù)據(jù)進(jìn)行更加靈活的處理,可以為游標(biāo)定義參數(shù),這些參數(shù)可以用在WHERE子句中。在打開游標(biāo)時,指定實際的參數(shù)值,這樣游標(biāo)在每次打開時,可以根據(jù)不同的實際參數(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è)定一個缺省值,當(dāng)沒有參數(shù)值傳遞給游標(biāo)時,就使用缺省值。,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)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025年孩子上學(xué)的勞動合同模板打印
- 2025年基站場地租賃協(xié)議
- 2024-2025學(xué)年五年級下學(xué)期數(shù)學(xué) 倍數(shù)與因數(shù)《《倍數(shù)與因數(shù)》練習(xí)課 》教案
- Unit 6 Section A 3a-3c(教學(xué)設(shè)計)-2024-2025學(xué)年人教新目標(biāo)Go For It!英語八年級上冊
- 2025年黑龍江冰雪體育職業(yè)學(xué)院單招職業(yè)適應(yīng)性測試題庫及參考答案
- 2025年湖南高爾夫旅游職業(yè)學(xué)院單招職業(yè)適應(yīng)性測試題庫學(xué)生專用
- 2025年甘肅農(nóng)業(yè)職業(yè)技術(shù)學(xué)院單招職業(yè)技能測試題庫參考答案
- 2025年湖南鐵路科技職業(yè)技術(shù)學(xué)院單招職業(yè)傾向性測試題庫完整
- 2025年河南藝術(shù)職業(yè)學(xué)院單招職業(yè)傾向性測試題庫完美版
- 2025年廣東省韶關(guān)市單招職業(yè)適應(yīng)性測試題庫參考答案
- 人教版八年級上冊英語語法填空含答案
- 《2024版CSCO胰腺癌診療指南》更新要點
- 兒童福利機(jī)構(gòu)安全管理規(guī)范
- 鞋類制造過程的節(jié)能與減排
- 第1課 おじぎ 課件高中日語人教版第一冊-1
- 08SG510-1 輕型屋面平行弦屋架(圓鋼管、方鋼管)
- 事前績效評估具體工作實施方案
- 六年級下冊語文第一單元測試卷 部編版(含答案)
- 2024年湖南高速鐵路職業(yè)技術(shù)學(xué)院單招職業(yè)適應(yīng)性測試題庫新版
- 《研學(xué)旅行市場營銷》課件-研學(xué)旅行市場營銷之社群營銷
- 醫(yī)美機(jī)構(gòu)客戶滿意度調(diào)查表
評論
0/150
提交評論