從表中獲取結果集,我們常用的方法就是使用遊標循環,我們看看它的執行速度:
我們再看一下完成同樣的功能, bulk collect into執行速度
BULK COLLECT 要比遊標循環快得多。如果你的代碼中有遊標循環,並且你也正爲這裏執行緩慢而發愁,不妨試試 BULK COLLECT
2. 沒有 NO_DATA_FOUND 異常
不過要記得,SELECT ... BULK COLLECT INTO ... 不會引起 NO_DATA_FOUND 異常,雖然它的語法看起來和 SELECT ... INTO ... 類似。要判斷 BULK COLLECT 是否獲得數據,可以通過 COUNT 方法:
3. 其他使用
除了 SELECT INTO 外,還可以在 FETCH INTO 和
RETURNING INTO 子句中使用 BULK COLLECT:
5. VARRAY 數組中使用 BULK COLLECT
而對於 VARRAY 數組,BULK COLLECT 也適用,不過定義時,其長度必須得大於或等於結果集的長度: