批量绑定—BULKCOLLECT

批量绑定—BULKCOLLECT

ID:38632149

大小:462.50 KB

页数:7页

时间:2019-06-16

批量绑定—BULKCOLLECT_第1页
批量绑定—BULKCOLLECT_第2页
批量绑定—BULKCOLLECT_第3页
批量绑定—BULKCOLLECT_第4页
批量绑定—BULKCOLLECT_第5页
批量绑定—BULKCOLLECT_第6页
批量绑定—BULKCOLLECT_第7页
资源描述:

《批量绑定—BULKCOLLECT》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库

1、批量绑定—BULKCOLLECT在PL/SQL编码中,经常会从表中获取结果集,然后进行一些逻辑处理,再生成新的数据。我们想到的最直接的方法就是使用游标。从Oracle8i开始,出现了一个新的子句:BULKCOLLECT。可以降低SQL引擎到PL/SQL引擎的上下文交换(contextswitch)次数,从而实现数据的高速检索。1.速度比较从表中获取结果集,我们常用的方法就是使用游标循环,我们看看它的执行速度:我们再看一下完成同样的功能,BULKCOLLECT的执行速度:BULKCOLLECT要比游标循环快得多。如果你的代码中有游标循环,并且你也正为这里执行缓

2、慢而发愁,不妨试试BULKCOLLECT。2.没有NO_DATA_FOUND异常不过要记得,SELECT...BULKCOLLECTINTO...不会引起NO_DATA_FOUND异常,虽然它的语法看起来和SELECT...INTO...类似。要判断BULKCOLLECT是否获得数据,可以通过COUNT方法:3.其他使用除了SELECTINTO外,还可以在FETCHINTO和RETURNINGINTO子句中使用BULKCOLLECT:4.联合数组中使用BULKCOLLECT前面我们举的例子,都是用的嵌套表,其实也可以使用联合数组:BULKCOLLECT生成的

3、集合,下表是默认从1开始的数字,步进为1,所以联合数组的索引,不能使用varchar2类型。如果你不小心使用了varchar2类型作为联合数组的索引,就会出现下面的错误:5.VARRAY数组中使用BULKCOLLECT而对于VARRAY数组,BULKCOLLECT也适用,不过定义时,其长度必须得大于或等于结果集的长度:如果VARRAY数组长度定义得过小,则会提示错误:如果VARRAY数组长度定义得过大,没什么影响,而且也不会占用多余的内存空间:不过推荐首选联合数组,或是嵌套表,在这里虽然可以使用VARRAY数组,但显然是不太合适的,就像steven所介绍的那

4、样。6.动态SQL中使用BULKCOLLECTOracle9i之前,BULKCOLLECT只能用在静态SQL中,从Oracle9i开始,动态SQL中也可以使用BULKCOLLECT:

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。