oracle中顯式游標(biāo)和隱式游標(biāo)比較
?? 在數(shù)據(jù)庫中,游標(biāo)是一個(gè)十分重要的概念,游標(biāo)提供了一種靈活手段,可以對(duì)表中檢索出的數(shù)據(jù)進(jìn)行操作。就本質(zhì)而言,游標(biāo)實(shí)際上是一種能從包括多條數(shù)據(jù)記錄的結(jié)果集中每次提取一條記錄的機(jī)制。
?? 游標(biāo)由結(jié)果集和結(jié)果集中指向特定記錄的游標(biāo)位置組成,游標(biāo)充當(dāng)指針的作用。盡管游標(biāo)能夠遍歷查詢結(jié)果中的所有行,但它一次只能指向一行。
?? 使用數(shù)據(jù)游標(biāo)可以選擇一組數(shù)據(jù),可以在記錄集上滾動(dòng)游標(biāo),并檢查游標(biāo)指向的每一行數(shù)據(jù)??梢杂镁植孔兞亢陀螛?biāo)的組合來分別檢查每個(gè)記錄,并在轉(zhuǎn)移到下一個(gè)記錄之前,進(jìn)行所需的任何外部操作。游標(biāo)的另一個(gè)常見用途是保存查詢結(jié)果,以便以后使用。游標(biāo)的結(jié)果集是由select語句產(chǎn)生,如果處理過程需要重復(fù)使用一個(gè)記錄集,那么創(chuàng)建一次游標(biāo)而重復(fù)使用若干次,比重復(fù)查詢數(shù)據(jù)庫要快得多。
??? 顯式游標(biāo)
?? 游標(biāo)由結(jié)果集和結(jié)果集中指向特定記錄的游標(biāo)位置組成,游標(biāo)充當(dāng)指針的作用。盡管游標(biāo)能夠遍歷查詢結(jié)果中的所有行,但它一次只能指向一行。
?? 使用數(shù)據(jù)游標(biāo)可以選擇一組數(shù)據(jù),可以在記錄集上滾動(dòng)游標(biāo),并檢查游標(biāo)指向的每一行數(shù)據(jù)??梢杂镁植孔兞亢陀螛?biāo)的組合來分別檢查每個(gè)記錄,并在轉(zhuǎn)移到下一個(gè)記錄之前,進(jìn)行所需的任何外部操作。游標(biāo)的另一個(gè)常見用途是保存查詢結(jié)果,以便以后使用。游標(biāo)的結(jié)果集是由select語句產(chǎn)生,如果處理過程需要重復(fù)使用一個(gè)記錄集,那么創(chuàng)建一次游標(biāo)而重復(fù)使用若干次,比重復(fù)查詢數(shù)據(jù)庫要快得多。
??? 顯式游標(biāo)
??? 在大多數(shù)時(shí)候我們?cè)谠O(shè)計(jì)程序的時(shí)候都遵循下面的步驟:
1、打開游標(biāo)
2、開始循環(huán)
3、從游標(biāo)中取值
? 4、檢查那一行被返回
? 5、處理
? 6、關(guān)閉循環(huán)
? 7、關(guān)閉游標(biāo)
但還有一種游標(biāo)與這種不相同,這就是FOR循環(huán),用于FOR循環(huán)的游標(biāo)按照正常的聲明方式聲明,它的優(yōu)點(diǎn)在于不需要顯式的打開、關(guān)閉、取數(shù)據(jù),測(cè)試數(shù)據(jù)的存在、定義存放數(shù)據(jù)的變量等等。
1、打開游標(biāo)
2、開始循環(huán)
3、從游標(biāo)中取值
? 4、檢查那一行被返回
? 5、處理
? 6、關(guān)閉循環(huán)
? 7、關(guān)閉游標(biāo)
但還有一種游標(biāo)與這種不相同,這就是FOR循環(huán),用于FOR循環(huán)的游標(biāo)按照正常的聲明方式聲明,它的優(yōu)點(diǎn)在于不需要顯式的打開、關(guān)閉、取數(shù)據(jù),測(cè)試數(shù)據(jù)的存在、定義存放數(shù)據(jù)的變量等等。
posted on 2010-08-10 15:29 飛熊 閱讀(733) 評(píng)論(0) 編輯 收藏 所屬分類: ORACLE