oracle 怎样每1000条删除

oracle 怎样每1000条删除,第1张

declare  

   cursor mycursor is SELECT  ROWID FROM TEST WHERE  XXX=XXXX  order by rowid;   <--------按ROWID排序的Cursor,删除条件是XXX=XXXX,根据实际情

况来定。

   type rowid_table_type is  table  of rowid index by pls_integer;

   v_rowid   rowid_table_type;

BEGIN

   open mycursor;

   loop

     fetch   mycursor bulk collect into v_rowid  limit 1000;   <--------每次处理1000行,也就是每1000行一提交

     exit when v_rowidcount=0;

     forall i in v_rowidfirstv_rowidlast

        delete from test  where rowid=v_rowid(i);

     commit;

   end loop;

   close mycursor;

END;

/

用分析函数可以解决。

给你一个简单的例子,假设表 test1 有两个字段 ID 和 salary。

可以这么写这个语句:

select id , salary from

(select id , salary,

sum(salary) over (order by salary desc, id) sum1

from test1) a1

where a1sum1 <= (select sum(salary) 09 from test1) ;

begin

   for i in 11000

   loop

      insert into t values('a'||i,i);

   end loop;

   commit;

end;

/

以上就是关于oracle 怎样每1000条删除全部的内容,包括:oracle 怎样每1000条删除、ORACLE怎么实现前多少列的和等于这些列所有值的和的90%、oracle中用循环插入1千行数据而且名字不一样怎么做等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!

欢迎分享,转载请注明来源:内存溢出

原文地址:https://54852.com/web/9771402.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2023-05-01
下一篇2023-05-01

发表评论

登录后才能评论

评论列表(0条)

    保存