校园春色亚洲色图_亚洲视频分类_中文字幕精品一区二区精品_麻豆一区区三区四区产品精品蜜桃

主頁(yè) > 知識(shí)庫(kù) > Oracle 遍歷游標(biāo)的四種方式匯總(for、fetch、while、BULK COLLECT)

Oracle 遍歷游標(biāo)的四種方式匯總(for、fetch、while、BULK COLLECT)

熱門(mén)標(biāo)簽:網(wǎng)貸外呼系統(tǒng)合法嗎 手機(jī)地圖標(biāo)注門(mén)店 杭州網(wǎng)絡(luò)外呼系統(tǒng)運(yùn)營(yíng)商 地圖標(biāo)注坐標(biāo)圖標(biāo) 鶴壁電話機(jī)器人價(jià)格 地圖標(biāo)注效果的制作 電銷(xiāo)套路機(jī)器人 汽車(chē)4s店百度地圖標(biāo)注店 安陽(yáng)企業(yè)電銷(xiāo)機(jī)器人供應(yīng)商

1.情景展示

  Oracle 遍歷游標(biāo)的四種方式(for、fetch、while、bulk collect+forall)

2.問(wèn)題分析

  我們可以把游標(biāo)想象成一張表,想要遍歷游標(biāo),就要取到游標(biāo)的每行數(shù)據(jù),所以問(wèn)題的關(guān)鍵就成了:如何取到行數(shù)據(jù)?

3.解決方案

  方式一:FOR 循環(huán)(推薦使用)

  變形一:遍歷顯式游標(biāo)

/* 如果是在存儲(chǔ)過(guò)程外使用顯式游標(biāo),需要使用DECLARE關(guān)鍵字 */
DECLARE
  /*創(chuàng)建游標(biāo)*/
  CURSOR CUR_FIRST_INDEX IS
    SELECT A.ID        A_ID, --一級(jí)指標(biāo)ID
           A.INDEXNAME A_INDEXNAME --一級(jí)指標(biāo)名稱(chēng)
      FROM INDEX_A A
     ORDER BY A_ID;
  /*定義游標(biāo)變量,該變量的類(lèi)型為基于游標(biāo)CUR_FIRST_INDEX的行記錄*/
  ROW_CUR_FIRST_INDEX CUR_FIRST_INDEX%ROWTYPE;
/*游標(biāo)處理*/
BEGIN
  /*遍歷顯式游標(biāo)*/
  --FOR 循環(huán)
  FOR ROW_CUR_FIRST_INDEX IN CUR_FIRST_INDEX LOOP
    --循環(huán)體
    DBMS_OUTPUT.PUT_LINE('{"ID":"' || ROW_CUR_FIRST_INDEX.A_ID || '","名稱(chēng)":"' || ROW_CUR_FIRST_INDEX.A_INDEXNAME || '"}');
  END LOOP;
END;  

  執(zhí)行,輸出結(jié)果

  變形二:遍歷隱式游標(biāo)(推薦使用)

  for循環(huán)遍歷游標(biāo),其實(shí)又可以分為兩種方式,一種是顯式游標(biāo)的遍歷,另一種是隱式游標(biāo)的遍歷。

/* 如果是在存儲(chǔ)過(guò)程外使用隱式游標(biāo),如果用不到變量無(wú)需聲明DECLARE關(guān)鍵字 */
/*游標(biāo)處理*/
BEGIN
  /*遍歷隱式游標(biāo)*/
  --FOR 循環(huán)
  FOR ROW_CUR_FIRST_INDEX IN (SELECT A.ID        A_ID, --一級(jí)指標(biāo)ID
                                     A.INDEXNAME A_INDEXNAME --一級(jí)指標(biāo)名稱(chēng)
                                FROM INDEX_A A
                               ORDER BY A_ID) LOOP
    --循環(huán)體
    DBMS_OUTPUT.PUT_LINE('{"ID":"' || ROW_CUR_FIRST_INDEX.A_ID || '","名稱(chēng)":"' || ROW_CUR_FIRST_INDEX.A_INDEXNAME || '"}');
  END LOOP;
END;

  隱式游標(biāo)相較于顯式游標(biāo)用法更加簡(jiǎn)單,無(wú)需聲明直接調(diào)用即可。    

  方式二:FETCH 循環(huán)

/*游標(biāo)聲明代碼和方式一一致,此處省略,直接展示游標(biāo)處理代碼*/
BEGIN
  /*遍歷游標(biāo)*/
  --FETCH 循環(huán)
  OPEN CUR_FIRST_INDEX; --必須要明確的打開(kāi)和關(guān)閉游標(biāo)
  LOOP
    FETCH CUR_FIRST_INDEX INTO ROW_CUR_FIRST_INDEX;
    EXIT WHEN CUR_FIRST_INDEX%NOTFOUND;
    --循環(huán)體
    DBMS_OUTPUT.PUT_LINE('{"ID":"' || ROW_CUR_FIRST_INDEX.A_ID || '","名稱(chēng)":"' || ROW_CUR_FIRST_INDEX.A_INDEXNAME || '"}');
  END LOOP;
  CLOSE CUR_FIRST_INDEX;
END;

  方式三:WHILE 循環(huán)

/*游標(biāo)聲明代碼和方式一一致,此處省略,直接展示游標(biāo)處理代碼*/
BEGIN
  /*遍歷游標(biāo)*/
  OPEN CUR_FIRST_INDEX; --必須要明確的打開(kāi)和關(guān)閉游標(biāo)
  FETCH CUR_FIRST_INDEX
    INTO ROW_CUR_FIRST_INDEX;
  WHILE CUR_FIRST_INDEX%FOUND LOOP
    --循環(huán)體
    DBMS_OUTPUT.PUT_LINE('{"ID":"' || ROW_CUR_FIRST_INDEX.A_ID || '","名稱(chēng)":"' || ROW_CUR_FIRST_INDEX.A_INDEXNAME || '"}');
    FETCH CUR_FIRST_INDEX
      INTO ROW_CUR_FIRST_INDEX;
  END LOOP;
  CLOSE CUR_FIRST_INDEX;
END;  

  注意:使用while循環(huán)時(shí),需要fetch兩次。

  方式四:BULK COLLECT+FORALL(速度最快)

/* 如果是在存儲(chǔ)過(guò)程外使用顯示游標(biāo),需要使用DECLARE關(guān)鍵字 */
/*聲明游標(biāo)*/
DECLARE
  /*創(chuàng)建顯式游標(biāo)*/
  CURSOR CUR_FIRST_INDEX IS
    SELECT A.ID        A_ID, --一級(jí)指標(biāo)ID
           A.INDEXNAME A_INDEXNAME --一級(jí)指標(biāo)名稱(chēng)
      FROM INDEX_A A
     ORDER BY A_ID;
  /*定義表類(lèi)型,該表的表結(jié)構(gòu)為游標(biāo)CUR_FIRST_INDEX的行記錄(可以存儲(chǔ)多條游標(biāo)記錄)*/
  TYPE TABLE_CUR_FIRST_INDEX IS TABLE OF CUR_FIRST_INDEX%ROWTYPE;
  /* 聲明表變量*/
  TAB_FIRST_INDEX TABLE_CUR_FIRST_INDEX;
/*游標(biāo)處理過(guò)程*/
BEGIN
  /*遍歷游標(biāo)*/
  OPEN CUR_FIRST_INDEX;
  LOOP
    --將n行游標(biāo)數(shù)據(jù)放到表中
    FETCH CUR_FIRST_INDEX BULK COLLECT
      INTO TAB_FIRST_INDEX LIMIT 1; -- 數(shù)據(jù)量太少,僅當(dāng)前測(cè)試使用哦,實(shí)際開(kāi)發(fā)建議 500 左右
    -- 退出條件
    EXIT WHEN TAB_FIRST_INDEX.COUNT = 0;
    --循環(huán)表數(shù)據(jù)
    FORALL I IN TAB_FIRST_INDEX.FIRST .. TAB_FIRST_INDEX.LAST LOOP
      DBMS_OUTPUT.PUT_LINE('{"ID":"' || TAB_FIRST_INDEX(I).A_ID || '","名稱(chēng)":"' || TAB_FIRST_INDEX(I).A_INDEXNAME || '"}');
    END LOOP;
  END LOOP;
  CLOSE CUR_FIRST_INDEX;
END;

4.總結(jié)

  •   使用for循環(huán)的優(yōu)勢(shì)在于:

  不需要手動(dòng)打開(kāi)關(guān)閉游標(biāo)(聲明游標(biāo)的開(kāi)啟和關(guān)閉);

  不需要手動(dòng)捕獲數(shù)據(jù)(自動(dòng)將數(shù)據(jù)fetch到記錄型變量);

  不需要關(guān)注何時(shí)要退出,也就是不需要寫(xiě)退出循環(huán)的滿(mǎn)足條件(遍歷完成就會(huì)退出)。

  •   第4方式與前3種的區(qū)別在于:

  前三種的游標(biāo)變量:ROW_CUR_FIRST_INDEX,只能存儲(chǔ)游標(biāo)的一條數(shù)據(jù);

  第四種的表變量:TAB_FIRST_INDEX,可以存儲(chǔ)游標(biāo)的多條數(shù)據(jù)。

  大數(shù)據(jù)批量處理的時(shí)候,第4種方式的優(yōu)勢(shì)將會(huì)凸顯出來(lái)。

本文作者:Marydon

原文鏈接:https://www.cnblogs.com/Marydon20170307/p/12869692.html

以上就是Oracle 遍歷游標(biāo)的四種方式匯總(for、fetch、while、BULK COLLECT)的詳細(xì)內(nèi)容,更多關(guān)于Oracle 遍歷游標(biāo)的資料請(qǐng)關(guān)注腳本之家其它相關(guān)文章!

您可能感興趣的文章:
  • Oracle數(shù)據(jù)庫(kù)游標(biāo)連接超出解決方案
  • 詳解Oracle游標(biāo)的簡(jiǎn)易用法
  • Oracle游標(biāo)的使用實(shí)例詳解
  • Oracle中游標(biāo)Cursor基本用法詳解
  • 詳解Oracle隱式游標(biāo)和顯式游標(biāo)
  • Oracle存儲(chǔ)過(guò)程游標(biāo)用法分析
  • Oracle出現(xiàn)超出打開(kāi)游標(biāo)最大數(shù)的解決方法
  • Oracle顯示游標(biāo)的使用及游標(biāo)for循環(huán)
  • Oracle存儲(chǔ)過(guò)程返回游標(biāo)實(shí)例詳解
  • Oracle 游標(biāo)使用總結(jié)
  • Oracle使用游標(biāo)進(jìn)行分批次更新數(shù)據(jù)的6種方式及速度比對(duì)

標(biāo)簽:焦作 梧州 南陽(yáng) 柳州 銀川 酒泉 河源 泰安

巨人網(wǎng)絡(luò)通訊聲明:本文標(biāo)題《Oracle 遍歷游標(biāo)的四種方式匯總(for、fetch、while、BULK COLLECT)》,本文關(guān)鍵詞  Oracle,遍歷,游,標(biāo)的,四種,;如發(fā)現(xiàn)本文內(nèi)容存在版權(quán)問(wèn)題,煩請(qǐng)?zhí)峁┫嚓P(guān)信息告之我們,我們將及時(shí)溝通與處理。本站內(nèi)容系統(tǒng)采集于網(wǎng)絡(luò),涉及言論、版權(quán)與本站無(wú)關(guān)。
  • 相關(guān)文章
  • 下面列出與本文章《Oracle 遍歷游標(biāo)的四種方式匯總(for、fetch、while、BULK COLLECT)》相關(guān)的同類(lèi)信息!
  • 本頁(yè)收集關(guān)于Oracle 遍歷游標(biāo)的四種方式匯總(for、fetch、while、BULK COLLECT)的相關(guān)信息資訊供網(wǎng)民參考!
  • 推薦文章
    校园春色亚洲色图_亚洲视频分类_中文字幕精品一区二区精品_麻豆一区区三区四区产品精品蜜桃
    亚洲精品一区二区三区福利 | 欧美主播一区二区三区美女| 国产日韩欧美不卡在线| 国产在线一区二区| 欧美国产丝袜视频| 在线视频综合导航| 美女视频黄a大片欧美| 国产精品久久一卡二卡| 欧美午夜在线一二页| 国产综合一区二区| 亚洲与欧洲av电影| 日韩欧美国产成人一区二区| 高清免费成人av| 亚洲成年人影院| 日本一区二区三区国色天香 | 亚洲三级在线观看| 欧美xxxxx牲另类人与| www.亚洲免费av| 看国产成人h片视频| 亚洲欧美一区二区视频| 日韩久久免费av| 91小视频免费看| 国产一区二区在线电影| 婷婷久久综合九色国产成人| 一色屋精品亚洲香蕉网站| 日韩精品中文字幕在线一区| 欧美在线你懂得| av资源网一区| 成人综合激情网| 国产美女精品人人做人人爽| 视频一区在线播放| 亚洲小说欧美激情另类| 亚洲欧洲色图综合| 国产女人18毛片水真多成人如厕 | 97久久精品人人做人人爽| 麻豆久久久久久久| 午夜视频久久久久久| 国产精品久久久久影院亚瑟| 精品少妇一区二区三区日产乱码| 欧美三片在线视频观看| 在线免费观看不卡av| 91视视频在线观看入口直接观看www| 国产福利精品导航| 国产麻豆视频一区二区| 老司机精品视频一区二区三区| 午夜精品久久久久久| 亚洲一区二区三区四区的| 伊人开心综合网| 一区二区三区在线高清| 一区二区三区资源| 亚洲制服丝袜在线| 天天操天天综合网| 男男成人高潮片免费网站| 欧美aⅴ一区二区三区视频| 精品一区二区三区免费视频| 美女mm1313爽爽久久久蜜臀| 九色porny丨国产精品| 国产一区在线不卡| 国产高清不卡一区| 91片在线免费观看| 欧美三级三级三级爽爽爽| 欧美一级黄色录像| 久久久国产综合精品女国产盗摄| 国产色爱av资源综合区| 国产精品每日更新| 亚洲精品中文字幕乱码三区| 亚洲成a人v欧美综合天堂| 免费精品视频在线| 极品少妇xxxx精品少妇| 成人一区二区在线观看| 日本韩国一区二区| 日韩一区二区三区四区| 国产女人aaa级久久久级| 一个色综合网站| 麻豆精品精品国产自在97香蕉 | 国产美女在线精品| 99久久99久久精品国产片果冻| 欧美午夜电影在线播放| 精品国产一区二区三区久久久蜜月| 久久精品一二三| 亚洲综合色丁香婷婷六月图片| 五月天视频一区| 成人在线视频一区二区| 在线91免费看| 国产精品欧美极品| 日本va欧美va精品发布| av成人免费在线| 日韩欧美一区在线| 亚洲麻豆国产自偷在线| 韩国女主播成人在线| 91浏览器打开| 国产亚洲欧美激情| 日韩二区三区四区| 成人sese在线| 久久综合色婷婷| 亚洲国产精品人人做人人爽| 大白屁股一区二区视频| 欧美v亚洲v综合ⅴ国产v| 亚洲制服丝袜av| 国产 日韩 欧美大片| 欧美一二三四区在线| 樱桃视频在线观看一区| 成人免费看黄yyy456| 日韩欧美久久久| 香蕉久久夜色精品国产使用方法| 成人免费av网站| 亚洲精品一区二区三区影院 | 欧美人xxxx| 中文字幕日韩欧美一区二区三区| 九九**精品视频免费播放| 在线观看国产91| 亚洲欧洲成人av每日更新| 国产成人精品免费| 26uuu国产在线精品一区二区| 天天av天天翘天天综合网 | 亚洲日本免费电影| 国产精品18久久久| 精品蜜桃在线看| 久久精品国产免费看久久精品| 欧美日韩精品专区| 五月婷婷另类国产| 91 com成人网| 久久精品二区亚洲w码| 日韩精品中文字幕在线不卡尤物| 日本vs亚洲vs韩国一区三区| 91精品国产综合久久精品麻豆| 亚洲福利视频三区| 欧美久久一二三四区| 日日噜噜夜夜狠狠视频欧美人| 欧美人牲a欧美精品| 天天综合日日夜夜精品| 日韩一卡二卡三卡四卡| 激情文学综合丁香| 中文一区二区在线观看| 99视频一区二区| 一区二区三区四区乱视频| 精品视频一区三区九区| 天天综合色天天综合色h| 欧美一级欧美一级在线播放| 精品一区二区三区视频| 国产精品视频免费| 欧美视频在线一区二区三区| 亚洲成人动漫一区| 日韩一级免费观看| 国产伦精品一区二区三区视频青涩| 久久精品网站免费观看| 91免费精品国自产拍在线不卡| 亚洲综合免费观看高清完整版| 欧美日韩国产123区| 国产美女在线精品| 一区二区三区不卡在线观看| 日韩亚洲欧美成人一区| 成人一级视频在线观看| 亚洲aaa精品| 欧美极品xxx| 欧美性生活久久| 国产毛片精品视频| 一区二区三区日韩精品视频| 欧美一区二区三区爱爱| 成人91在线观看| 久久99精品久久久久久国产越南 | 国产精品一区二区在线观看网站| 国产精品拍天天在线| 8v天堂国产在线一区二区| 国产精品中文字幕一区二区三区| 欧美videos中文字幕| 91蜜桃视频在线| 蜜臀av一区二区在线免费观看| 国产日韩欧美精品一区| 欧美精品一卡两卡| 成人av网址在线| 日本aⅴ精品一区二区三区| 亚洲色图在线看| 久久影院视频免费| 欧美伊人久久久久久久久影院| 国产一区二区三区久久悠悠色av| 亚洲一卡二卡三卡四卡无卡久久| 日本一区二区综合亚洲| 精品乱码亚洲一区二区不卡| 欧美色涩在线第一页| 91麻豆国产在线观看| 国产91清纯白嫩初高中在线观看 | 成人性生交大片免费| 麻豆精品在线看| 亚洲国产另类精品专区| 亚洲四区在线观看| 久久精品视频免费| 欧美成人综合网站| 欧美日韩一区成人| 91美女视频网站| a4yy欧美一区二区三区| 国产原创一区二区三区| 久久国产精品色| 免费看日韩精品| 日韩av一二三| 日本aⅴ免费视频一区二区三区| 同产精品九九九| 日韩精品亚洲一区| 日精品一区二区| 麻豆一区二区三区|