从表中获取结果集,我们常用的方法就是使用游标循环,我们看看它的执行速度:
我们再看一下完成同样的功能, 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 也适用,不过定义时,其长度必须得大于或等于结果集的长度: