oracle下巧用bulk collect实现cursor批量fetch的sql语句

前端之家收集整理的这篇文章主要介绍了oracle下巧用bulk collect实现cursor批量fetch的sql语句前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。

在一般的情况下,使用批量fetch的几率并不是很多,但是Oracle提供了这个功能我们最好能熟悉一下,说不定什么时候会用上它。 @H_301_0@<div class="codetitle"><a style="CURSOR: pointer" data="29723" class="copybut" id="copybut29723" onclick="doCopy('code29723')"> 代码如下:

<div class="codebody" id="code29723">@H_3010@declare @H301_0@cursorc1isselectfromtdepart; @H301_0@v_departtdepart%rowtype; @H301_0@typev_code_typeistableoft_depart.departcode%type; @H301_0@v_codev_codetype; @H301_0@typev_name_typeistableoft_depart.departname%type; @H301_0@v_namev_nametype; @H3010@begin @H3010@openc1; @H301_0@fetchc1bulkcollectintov_code,vname; @H301_0@foriin1..vcode.countloop @H301_0@dbms_output.put_line(v_code(i)||''||vname(i)); @H3010@endloop; @H3010@closec1; @H3010@end;@H3010@
@H3010@通过上面的这个列子大家可以发现如果列很多的话,为每一列定义一个集合似乎有些繁琐,可以把集合和%rowtype结合起来一起使用简化程序!@H301_0@<div class="codetitle"><a style="CURSOR: pointer" data="21437" class="copybut" id="copybut21437" onclick="doCopy('code21437')"> 代码如下:
<div class="codebody" id="code21437">@H_3010@declare @H301_0@cursorc1isselectfromtdepart; @H301_0@typev_depart_typeistableoftdepart%rowtype; @H301_0@v_departv_departtype; @H3010@begin @H3010@openc1; @H301_0@fetchc1bulkcollectintovdepart; @H301_0@foriin1..vdepart.countloop @H301_0@dbms_output.put_line(v_depart(i).departcode||''|| @H301_0@v_depart(i).departname); @H3010@endloop; @H3010@closec1; @H3010@end;@H3010@
@H301_0@在输出结果时既可以使用集合的count属性和可以使用first和last,在引用%rowtype类型的内容时还有一个需要注意的地方是v_depart(i).depart_code,而不是v_depart.departcode(i),当然没有这样的写法,即使有意义也并不一样。@H301_0@<div class="codetitle"><a style="CURSOR: pointer" data="99411" class="copybut" id="copybut99411" onclick="doCopy('code99411')"> 代码如下:
<div class="codebody" id="code99411">@H_3010@declare @H301_0@cursorc1isselect*fromtdepart; @H301_0@typev_depart_typeistableoftdepart%rowtype; @H301_0@v_departv_departtype; @H3010@begin @H3010@openc1; @H301_0@fetchc1bulkcollectintovdepart; @H301_0@foriinv_depart.first..vdepart.lastloop @H301_0@dbms_output.put_line(v_depart(i).departcode||''|| @H301_0@v_depart(i).departname); @H3010@endloop; @H3010@closec1; @H3010@end;@H3010@
@H301_0@

原文链接:https://www.f2er.com/oracle/65863.html
bulkcollectcursor

猜你在找的Oracle相关文章