Oracle 游标的使用总结

declare
  --定义游标
  cursor tcount is
       select 
       to_number(to_char(d_create,'yyyy')) as fyear,
       vc_code as fsetid,
       l_fundid as fsetcode,
       vc_name as fsetname,
       nvl(to_number(to_char(d_dqrq,'yyyy')),to_number(to_char(systimestamp,'yyyy'))) as fyear1,SRC
       from md_tfundinfo;

       --定义读取游标的变量
       row_tcount tcount%rowtype;
       --开始时间
       s number;
       --结束时间
       e number;
begin
  --打开游标
  open tcount;
  --开始循环
  loop
    --将游标所在行赋值给变量
    fetch tcount into row_tcount;
    --游标读到结尾时推出(一定要写在最前面)
    exit when tcount%notfound;
    --赋值
    s := row_tcount.fyear;
    e := row_tcount.fyear1;
      --循环处理该行数据
      loop
        --先验证表中是否存在要插入的数据,避免重复插入
        select count(*) into t from md_lsetlist where fyear=s and fsetid=row_tcount.fsetid and fsetcode=row_tcount.fsetcode
          and fsetname=row_tcount.fsetname and src=row_tcount.src;
        if t=0 then  
          insert into md_lsetlist(fyear,fsetid,fsetcode,fsetname,src)
                 values(s,row_tcount.fsetid,row_tcount.fsetcode,row_tcount.fsetname,row_tcount.src);
        commit;
        end if;
        s := s+1;
        exit when s>e;
      end loop;
  --退出循环
  end loop;
  --关闭游标
  close tcount;
end;
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值