oracle pl_sql 通过游标循环取数字的方法

本文详细介绍了如何使用Oracle PL/SQL编写代码,通过游标循环执行复杂的SQL查询,包括从指定表中选择特定日期范围内的记录,并对数据进行过滤、更新和插入到新的表中。特别强调了使用游标处理大量数据时的效率与灵活性。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

declare
  cursor o is
select distinct to_char(report_date,'yyyymmdd') report_date from My_test_DAY_REPORT where report_date >=to_date(20130501,'yyyymmdd') order by 1;
  riqi o%rowtype;
begin
  open o;
   loop fetch o
    into riqi;
  exit when o%notfound;
dbms_output.put_line(riqi.report_date);
  delete from tmp_no_rijie  where run_date=to_date(riqi.report_date, 'yyyymmdd');
  commit;
  insert into tmp_no_rijie
  select t1.org_code      ,
         t1.org_name      ,
         t1.org_type_id   ,
         t1.org_type_name ,
         t1.sup_org_code  ,
         t2.org_name      ,
         t1.usable       ,
         to_date(riqi.report_date, 'yyyymmdd')
    from sys_org t1, (select org_name, org_code from sys_org) t2
   where org_type_id = 18
     and usable = 1
     and t1.sup_org_code = t2.org_code
     and t1.org_code in (130002,
                         150002,
                         150057,
                         150059,
                         150058,
                         140023,
                         140001,
                         110001,
                         170006,
                         170002,
                         180003,
                         140024)
     and t1.org_code not in
         (select org_code
            from My_test_DAY_REPORT
           WHERE report_date = to_date(riqi.report_date, 'yyyymmdd'));
           commit;
end loop;

close o;
end;
/
select run_date as 日期,org_code as 组织,org_name as 组织名,'未做日结' from tmp_no_rijie order by 1;
 
 

oracle pl_sql 通过游标循环取数字的方法
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值