一个删除多余数据的sql(用游标删除)

重复上传导致有两条除ID不同其他所有属性全相同的两条数据。其中有前几日的数据生成了业务数据,因为有生成业务数据的判断不会重复生成任务数据,所以有些 CREATE_ORDER 字段的值为1,其他的都为0。想将没用的数据删除,作为一个新手犯了难,以为以前只用过一次游标现在全忘了,现baidu的游标使用方法,费半天劲终于做出来了。
declare
       --类型定义
       cursor c_job
       is
          SELECT T.FFCC || T.SSOOTT || t.AALLII || T.AAII AS WT FROM T_YK_LMO T  
          WHERE T.CCTTCC = 'CA' AND T.DELETE_FLAG = '0' HAVING COUNT(1) > 1 
          GROUP BY T.CLIENT_CODE, T.FFCC, T.SSOOTT, t.AALLII,T.AAII;
       --定义一个游标变量v_cinfo c_emp%ROWTYPE ,该类型为游标c_emp中的一行数据类型
       c_row c_job%rowtype;
begin
       OPEN c_job;
         loop
           fetch c_job into  c_row;--从游标中提取一行添加到记录中
           --判读是否提取到值,没取到值就退出
           exit when c_job%notfound;
           DELETE T_YK_LMO DT WHERE DT.PLAN_ID = (
                  SELECT TT.PLAN_ID FROM T_YK_LMO TT
                   WHERE TT.DELETE_FLAG = '0' AND TT.CREATE_ORDER = '0' AND rownum = 1 
                   AND TT.FFCC || TT.SSOOTT || TT.AALLII || TT.AAII = c_row.WT);
         END LOOP;
       CLOSE c_job;
end;

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值