




版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)
文檔簡介
1、7.1 游標的創(chuàng)建與應(yīng)用,經(jīng)1106 徐曉碩 學號20111189,1. 游標的概念,2. 顯式游標,4.隱式游標,1.游標的概念,背景由來 當SELECT語句在PL/SQL程序塊中使用時, 要求查詢結(jié)果中只能包含一條記錄, 若查詢出來的數(shù)據(jù)多于一行,則執(zhí)行出錯。 這時候就需要用到游標。,1.游標的概念,Oracle游標的概念 游標是ORACLE系統(tǒng)在內(nèi)存中開辟的一個工作區(qū),在其中存放SELECT語句返回的查詢結(jié)果。這個查詢結(jié)果既可以是零記錄,單條記錄,也可以是多條記錄.在游標所定義的工作區(qū)中,存在著一個指針(POINTER),在初始狀態(tài)它指向查詢結(jié)果的首記錄.,1.游標的概念,Oracle游
2、標的類型 隱式游標: 是oracle為所有數(shù)據(jù)操縱語句(包括只返回單行數(shù)據(jù)的查詢語句)自動聲明和操作的一種游標(名字是sql)。顯式游標: 用戶顯示聲明的游標,即指定結(jié)果集。當查詢返回結(jié)果超過一行時,就需要一個顯式游標。,2.顯式游標,顯式游標的使用過程,1.定義游標 2.打開游標 3.提取游標 4.處理數(shù)據(jù) 5.關(guān)閉游標,1.定義游標,語法: CURSOR 游標名 IS SELECT語句; 例子: CURSOR c1 IS SELECT*FROM emp;,2.打開游標,語法: OPEN 游標名 ; 例子: OPEN c1 ;,3.提取數(shù)據(jù),游標被打開后,使用FETCH語句獲取游標正在指向的
3、結(jié)果集中的記錄,語句執(zhí)行后游標的指針自動下移,指向下一條記錄。 每執(zhí)行一次FETCH語句,游標只獲取一行記錄。,3.提取數(shù)據(jù),語法: FETCH 游標名 INTO 變量名; 例子: FETCH c1 INTO emp_rec; 其中emp_rec是已定義好的和emp 結(jié)構(gòu)相同的記錄變量。,4.處理數(shù)據(jù),上一步已經(jīng)將游標指向的當期行記錄通過FETCH語句提取出來并放到變量(emp_rec)中,接下來就可以對這些變量中的數(shù)據(jù)進行處理了。 例:將emp_rec中的數(shù)據(jù)輸出 dbms_output.put_line(姓名是:|emp_rec.ename);,5.關(guān)閉游標,語法: CLOSE 游標名;
4、例子: CLOSE c1;,首先創(chuàng)建一個表,查看表中的信息,游標的聲明與使用,游標的聲明與使用,每執(zhí)行一次FETCH語句,游標只獲取一行記錄,5次FETCH操作,游標的聲明與使用,FETCH語句指向最后記錄,將不再移動,6次FETCH操作,2.顯式游標,游標的常用屬性,1.%ISOPEN 屬性 2.%FOUND 屬性 3.%NOTFOUND屬性 4.%ROWCOUNT屬性,1.%ISOPEN屬性,判斷游標是否打開。打開返回值為TURE, 未打開返回值為FALSE。 語法: 游標名%ISOPEN; 例子: IF c1%ISOPEN THEN ;,2.%FOUND屬性,判斷游標是否從結(jié)果集中取到數(shù)
5、據(jù)。取到返回值為TURE, 未取到返回值為FALSE。 語法: 游標名%FOUND; 例子: IF c1%FOUND THEN ;,3.%NOTFOUND屬性,與%FOUND相反。未取到數(shù)據(jù)返回值為TURE, 取到數(shù)據(jù)返回值為FALSE。 語法: 游標名%NOTFOUND; 例子: IF c1%NOTFOUND THEN ;,4.%ROWCOUNT屬性,表示游標從查詢結(jié)果集中已經(jīng)獲取到的記錄總數(shù)。 語法: 游標名%ROWCOUNT; 例子: FETCH c1 INTO emp_rec; IF c1%ROWCOUNT10 THEN ;,2.顯式游標,顯式游標的循環(huán),1.游標的LOOP循環(huán) 2.游
6、標的FOR 循環(huán),1.游標的LOOP循環(huán),語法: LOOP FETCH 游標名INTO 變量名; EXIT WHEN 游標名%NOTFOUND;ENDLOOP; LOOP循環(huán)中的FETCH語句重復(fù)執(zhí)行,當FETCH語句不能從游標的當前行取出數(shù)據(jù)時,循環(huán)結(jié)束。,游標的聲明與使用,2.游標的FOR循環(huán) 語法: FOR 變量名 IN 游標名 LOOP 數(shù)據(jù)處理語句; END LOOP;,2.游標的FOR循環(huán) 特點: FOR循環(huán)中循環(huán)控制變量不需要事先定義 FOR循環(huán)之前,系統(tǒng)能自動打開游標;循環(huán)結(jié)束后,系統(tǒng)自動關(guān)閉游標。 FOR循環(huán)過程中,自動執(zhí)行FETCH語句。,3.帶參數(shù)的游標,背景由來 在前面
7、介紹游標的例子中,SELECT語句都沒有WHERE子句,或者用WHERE子句指定了一個固定的條件,這樣每次都查詢同樣的數(shù)據(jù)。在更多的情況下,可能要根據(jù)實際情況查詢不同的數(shù)據(jù)。要怎么辦?,3.帶參數(shù)的游標,背景由來 為了通過游標對數(shù)據(jù)進行更加靈活的處理,可以為游標定義參數(shù),這些參數(shù)可以用在WHERE子句中。在打開游標時,指定實際的參數(shù)值,這樣游標在每次打開時,可以根據(jù)不同的實際參數(shù)值,返回所需的不同數(shù)據(jù)。,3.帶參數(shù)的游標,定義格式 語法: CURSOR 游標名(參數(shù)名 數(shù)據(jù)類型 DEFAULT 默認值) IS SELECT語句; 參數(shù)需要指明參數(shù)名及其數(shù)據(jù)類型。 參數(shù)只定義數(shù)據(jù)類型,沒有大小。 可以給參數(shù)設(shè)定一個缺省值,當沒有參數(shù)值傳遞給游標時,就使用缺省值。,4.隱式游標,背景由來 DML操作和單行SELECT語句會使用隱式游標(名字是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)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
- 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 廣告牌場地租賃合同
- 后勤勞務(wù)服務(wù)承包合同書
- 數(shù)控機床購買合同
- 產(chǎn)品研發(fā)與研發(fā)人員效率表
- 債務(wù)債權(quán)轉(zhuǎn)讓協(xié)議書
- 鋪設(shè)壓沙土施工方案
- 公路護欄加高施工方案
- 漢蘭達四門隔音施工方案
- (一模)贛州市2025年高三年級摸底考試物理試卷(含標準答案)
- 橋墩鋼筋成品保護方案
- 急救藥品課件教學課件
- 學術(shù)英語智慧樹知到答案2024年南開大學
- 【部編版道德與法治六年級下冊】全冊測試卷(含答案)
- 2024年中考英語專項復(fù)習:傳統(tǒng)文化的魅力(閱讀理解+完型填空+書面表達)(含答案)
- 酒店物業(yè)管理服務(wù)合同范本
- 2024-2030年中國磷系阻燃劑行業(yè)市場發(fā)展分析及發(fā)展趨勢與投資前景研究報告
- 2024-2030年中國公路勘察設(shè)計行業(yè)市場深度調(diào)研及競爭格局與發(fā)展趨勢研究分析報告
- 報價單完整版本
- JT-T-794-2019道路運輸車輛衛(wèi)星定位系統(tǒng)車載終端技術(shù)要求
- 【課件】勃蘭登堡協(xié)奏曲Ⅱ+課件高一上學期音樂人音版(2019)必修音樂鑒賞
- G -B- 5009.11-2024 食品安全國家標準 食品中總砷及無機砷的測定(正式版)
評論
0/150
提交評論