BULK COLLECT

BULK COLLECT的使用

先建立測試用的表及數據

CREATE TABLE plch_orders

(

   order_id       INTEGER PRIMARY KEY,

   order_amount   NUMBER

)

/

 

BEGIN

   INSERT INTO plch_orders VALUES (100, 5000);

   INSERT INTO plch_orders VALUES (200, 10000);

   COMMIT;

END;

/

1. SELECT …..

BULK COLLECT INTO……

 

DECLARE

 TYPE orders_t IS TABLE OF plch_orders%ROWTYPE;

 l_orders orders_t;

begin

SELECT  *

   BULK COLLECT INTO  l_orders

   FROM plch_orders

order by order_id;

for i in 1..l_orders.count

loop

  DBMS_OUTPUT.put_line(l_orders(i).order_id||':'||l_orders(i).order_amount);

end loop;

end;

/

100:5000

200:500

 

2. FETCH …  BULK INTO …

DECLARE

 TYPE orders_t IS TABLE OF plch_orders%ROWTYPE;

 l_orders orders_t;

 CURSOR orders_cur

 IS

      SELECT *

        FROM plch_orders

    ORDER BY order_id;

  BEGIN

     OPEN orders_cur;

     FETCH orders_cur BULK COLLECT INTO l_orders;

  for i in 1..l_orders.count

 loop

   DBMS_OUTPUT.put_line(l_orders(i).order_id||':'||l_orders(i).order_amount);

 end loop;

 CLOSE orders_cur;

 END;

 /

 

3. EXECUTE IMMEDIATE … BULK COLLECT INTO …

DECLARE

  TYPE orders_t IS TABLE OF plch_orders%ROWTYPE;

  l_orders orders_t;

BEGIN

   EXECUTE IMMEDIATE

       'SELECT * FROM plch_orders

      ORDER BY order_id'

      BULK COLLECT INTO l_orders;

  for i in 1..l_orders.count

 loop

   DBMS_OUTPUT.put_line(l_orders(i).order_id||':'||l_orders(i).order_amount);

 end loop;

end;

/

 

来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/10314474/viewspace-769050/,如需转载,请注明出处,否则将追究法律责任。

转载于:http://blog.itpub.net/10314474/viewspace-769050/

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值