批量綁定—BULKCOLLECT

批量綁定—BULKCOLLECT

ID:38632149

大?。?62.50 KB

頁數(shù):7頁

時間:2019-06-16

批量綁定—BULKCOLLECT_第1頁
批量綁定—BULKCOLLECT_第2頁
批量綁定—BULKCOLLECT_第3頁
批量綁定—BULKCOLLECT_第4頁
批量綁定—BULKCOLLECT_第5頁
批量綁定—BULKCOLLECT_第6頁
批量綁定—BULKCOLLECT_第7頁
資源描述:

《批量綁定—BULKCOLLECT》由會員上傳分享,免費在線閱讀,更多相關(guān)內(nèi)容在教育資源-天天文庫。

1、批量綁定—BULKCOLLECT在PL/SQL編碼中,經(jīng)常會從表中獲取結(jié)果集,然后進(jìn)行一些邏輯處理,再生成新的數(shù)據(jù)。我們想到的最直接的方法就是使用游標(biāo)。從Oracle8i開始,出現(xiàn)了一個新的子句:BULKCOLLECT。可以降低SQL引擎到PL/SQL引擎的上下文交換(contextswitch)次數(shù),從而實現(xiàn)數(shù)據(jù)的高速檢索。1.速度比較從表中獲取結(jié)果集,我們常用的方法就是使用游標(biāo)循環(huán),我們看看它的執(zhí)行速度:我們再看一下完成同樣的功能,BULKCOLLECT的執(zhí)行速度:BULKCOLLECT要比游標(biāo)循環(huán)快得多。如果你的代碼中有游標(biāo)循環(huán),并且你也正為這里執(zhí)行緩

2、慢而發(fā)愁,不妨試試BULKCOLLECT。2.沒有NO_DATA_FOUND異常不過要記得,SELECT...BULKCOLLECTINTO...不會引起NO_DATA_FOUND異常,雖然它的語法看起來和SELECT...INTO...類似。要判斷BULKCOLLECT是否獲得數(shù)據(jù),可以通過COUNT方法:3.其他使用除了SELECTINTO外,還可以在FETCHINTO和RETURNINGINTO子句中使用BULKCOLLECT:4.聯(lián)合數(shù)組中使用BULKCOLLECT前面我們舉的例子,都是用的嵌套表,其實也可以使用聯(lián)合數(shù)組:BULKCOLLECT生成的

3、集合,下表是默認(rèn)從1開始的數(shù)字,步進(jìn)為1,所以聯(lián)合數(shù)組的索引,不能使用varchar2類型。如果你不小心使用了varchar2類型作為聯(lián)合數(shù)組的索引,就會出現(xiàn)下面的錯誤:5.VARRAY數(shù)組中使用BULKCOLLECT而對于VARRAY數(shù)組,BULKCOLLECT也適用,不過定義時,其長度必須得大于或等于結(jié)果集的長度:如果VARRAY數(shù)組長度定義得過小,則會提示錯誤:如果VARRAY數(shù)組長度定義得過大,沒什么影響,而且也不會占用多余的內(nèi)存空間:不過推薦首選聯(lián)合數(shù)組,或是嵌套表,在這里雖然可以使用VARRAY數(shù)組,但顯然是不太合適的,就像steven所介紹的那

4、樣。6.動態(tài)SQL中使用BULKCOLLECTOracle9i之前,BULKCOLLECT只能用在靜態(tài)SQL中,從Oracle9i開始,動態(tài)SQL中也可以使用BULKCOLLECT:

當(dāng)前文檔最多預(yù)覽五頁,下載文檔查看全文

此文檔下載收益歸作者所有

當(dāng)前文檔最多預(yù)覽五頁,下載文檔查看全文
溫馨提示:
1. 部分包含數(shù)學(xué)公式或PPT動畫的文件,查看預(yù)覽時可能會顯示錯亂或異常,文件下載后無此問題,請放心下載。
2. 本文檔由用戶上傳,版權(quán)歸屬用戶,天天文庫負(fù)責(zé)整理代發(fā)布。如果您對本文檔版權(quán)有爭議請及時聯(lián)系客服。
3. 下載前請仔細(xì)閱讀文檔內(nèi)容,確認(rèn)文檔內(nèi)容符合您的需求后進(jìn)行下載,若出現(xiàn)內(nèi)容與標(biāo)題不符可向本站投訴處理。
4. 下載文檔時可能由于網(wǎng)絡(luò)波動等原因無法下載或下載錯誤,付費完成后未能成功下載的用戶請聯(lián)系客服處理。