带 limit 的 Bulk Collect 的一个简单例子

上一篇 / 下一篇  2006-10-17 00:00:00 / 个人分类:My Oracle Article

带 limit 的 Bulk Collect , 或者说Forall 的一个简单例子

同时还用到了 dbms_sql 里预先定义好的rowid 的table类型

记录一下……


declare
row_id_table dbms_sql.Urowid_Table;

--
每次process 几行自己确定

maxrows number
default 100;
cursor cur is

select rowid from t2

where SENDTIME
<=sysdate ;
begin

open cur
;
LOOP

EXIT WHEN cur%NOTFOUND;
FETCH cur bulk collect into row_id_table limit maxrows;
forall i in 1 .. row_id_table.count

insert into t1 select
* from t2

where rowid
= row_id_table(i) ;
forall i in 1 .. row_id_table.count

delete from t2

where rowid
= row_id_table(i) ;

--
commit 加不加随你

commit
;
end loop;
end;

/

TAG:

 

评分:0

我来说两句

显示全部

:loveliness: :handshake :victory: :funk: :time: :kiss: :call: :hug: :lol :'( :Q :L ;P :$ :P :o :@ :D :( :)

日历

« 2008-09-06  
 123456
78910111213
14151617181920
21222324252627
282930    

数据统计

  • 访问量: 1498
  • 日志数: 443
  • 建立时间: 2007-12-26
  • 更新时间: 2008-08-06

RSS订阅

Open Toolbar