首页 > 其他 > 详细

利用游标循环删除数据

时间:2019-02-26 10:02:12      阅读:224      评论:0      收藏:0      [点我收藏+]

# 清除重复数据(数据量较大时使用,每1000条提交一次)
declare
v_cnt number := 0;
begin 
  -- v_cnt number := 0;
  loop
    DELETE FROM T_MS_INDEX WHERE BIZ_TYPE = ‘T_MS_PHYEXA_ASSISTEXA‘ AND ROWNUM < 1000 AND F_PK IN
    (
    SELECT F_PK FROM 
      (
        SELECT F_PK, ID, ROW_NUMBER() OVER(partition by ID order by F_PK) rn 
        FROM T_MS_INDEX WHERE biz_type = ‘T_MS_PHYEXA_ASSISTEXA‘
      ) where rn > 1
    );
    v_cnt := SQL%ROWCOUNT;
    COMMIT;
    DBMS_OUTPUT.put_line(v_cnt||‘行已删除‘);
    EXIT when v_cnt <= 0;
  END LOOP;
    END;

利用游标循环删除数据

原文:https://www.cnblogs.com/Memories-off/p/10435453.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!