PLSQL_Les03--游標.ppt_第1頁
PLSQL_Les03--游標.ppt_第2頁
PLSQL_Les03--游標.ppt_第3頁
PLSQL_Les03--游標.ppt_第4頁
PLSQL_Les03--游標.ppt_第5頁
已閱讀5頁,還剩14頁未讀 繼續(xù)免費閱讀

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權,請進行舉報或認領

文檔簡介

1、三.游標CURSOR,目標,完成本節(jié)課學習后,應當達到如下目標: 掌握處理游標所需的步驟。 通過游標的屬性,對游標進行控制。 掌握不同種類的提取循環(huán)。,什么是游標,為了處理SQL語句,Oracle必須分配一片內(nèi)存區(qū)域,這就是context are。這個區(qū)域包含了完成該語句的必需信息。 游標是指向context are的句柄或指針。通過游標,PL/SQL程序可以控制context are和在處理語句時context are發(fā)生些什么事情。 游標可分為顯示游標和隱式游標,處理顯示游標,顯示游標的處理包括四個PL/SQL步驟: 聲明游標(在聲明部分) 打開游標(在執(zhí)行部分) 將結果提取到PL/SQL

2、變量中(在執(zhí)行部分) 關閉游標(在執(zhí)行部分),聲明游標,CURSOR cursor-name IS SELECT-statement; 注:這里的SELECT-statement不包含 INTO 子句,DECLARE v_Major VARCHAR2(1000); v_PLSQLBlock VARCHAR2(1000); CURSOR c_EconMajor IS SELECT * FROM students WHERE major = v_Major ; - 可以在定義游標的語句中使用前面已經(jīng)定義的變量,打開游標,OPEN cursor_name;,當游標打開時: 聯(lián)編變量的取值被檢查。 根

3、據(jù)聯(lián)編變量的取值,活動集被確定。 活動集的指針指向第一行。,從游標提取,FETCH cursor_name INTO list_of_variables; FETCH cursor_name INTO PL/SQL_record; 查詢的INTO子句是FETCH語句的一部分。FETCH語句有以上兩種形式。,cursor_name是已經(jīng)聲明并打開的游標 list_of_variable是已經(jīng)被聲明的變量的列表 PL/SQL_record是已經(jīng)被聲明的PL/SQL記錄。 INTO子句中的變量類型必須與查詢語句的選擇列表的類型兼容。,關閉游標,CLOSE cursor_name;,cursor_na

4、me是原來已經(jīng)打開的游標 一旦游標關閉就無法在提取數(shù)據(jù),游標的屬性,%FOUND %NOTFOUND %ISOPEN %ROWCOUNT,參數(shù)化游標,CURSOR c_Class(p_Dep classes.department%TYPE, p_Course classes.course) IS SELECT * FROM classes WHERE department = p_Dep AND course = p_Course;,OPEN時將參數(shù)傳遞給游標 OPEN c_Class(HIS,101);,隱式游標(SQL游標),與顯示游標不同的是,SQL游標不被程序打開和關閉,PL/SQL隱

5、含 的打開SQL游標,處理其中的語句,然后關閉游標。 隱式游標用于處理INSERT, UPDATE, DELETE和單行的 SELECTINTO語句。,具有以下屬性 SQL%NOTFOUND SQL%FOUND SQL%ROWCOUNT SELECTINTO語句找不到任何行時,觸發(fā) ORA-1403: no data found錯誤。,游標提取循環(huán),簡單循環(huán) WHILE循環(huán) 游標式FOR循環(huán),簡單循環(huán),使用簡單循環(huán)LOOPEND LOOP;語法控制循環(huán)。,OPEN c_Cursor; LOOP FETCH c_Cursor INTO r_Cursor; EXIT WHEN c_Cursor%NOTFOUND; END LOOP;,WHILE循環(huán),使用 WHILELOOP語法構建提取循環(huán)。,OPEN c_HistoryStudents; FETCH c_HistoryStudents INTO v_StudentData; WHILE c_HistoryStudents%FOUND LOOP FETCH c_HistoryStudents INTO v_StudentData; END LOOP;,游標式FOR循環(huán),使用FOR循環(huán),可以隱式地進行游標處理。,FOR v_StudentData IN c_HistoryStudents LOOP . END LOOP;,FOR循環(huán)

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
  • 4. 未經(jīng)權益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
  • 6. 下載文件中如有侵權或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論