<Oracle游标>存储过程中使用游标

例子:

create or replace procedure Pro_Select_LifeStyle(jg      varchar2,
                                                 m_id    varchar2,
                                                 out_cur out sys_refcursor) is

  v_lsDiet_count1 number(1);
  v_lsDiet1 varchar2(100);
  v_lsDiet2 varchar2(100);

  v_lsDietGr varchar2(100);
  v_lsDietFr varchar2(100);
  v_lsDietMi varchar2(100);

  cursor ysxg is 
                       select t1.v  from  exam t, data t1
                 where t.id = t1.exam_id
                   and t.member_id = m_id
                   and t.表名 like '生活方式%'
                   and t1.n = '膳食习惯' ;
begin
      --查询条数
      select count(*) into v_lsDiet_count1
          from exam x1, data x2
         where x1.id = x2.exam_id
           and x1.member_id = m_id
           and x1.表名 like '生活方式%'
           and x2.n = '膳食习惯' ;
           --循环
           if v_lsDiet_count1>0 then
                    for r in ysxg loop
                        if r.v='1' then
                           v_lsDiet1 :='<d>1;</d>';
                      elsif r.v='2' then
                           v_lsDiet2 :='<d>2;</d>';
                       elsif r.v='3'  then
                           v_lsDietGr :='<d>3;</d>';
                       elsif r.v='4'  then
                           v_lsDietFr :='<d>4;</d>';
                       elsif r.v='5'  then
                           v_lsDietFr :='<d>5;</d>' ;
                        end if;
                   end loop;
           else 
               v_lsDietFr :='<r0>-1</r0>';
           end if;
  open out_cur for
    select <span style="font-family: Arial, Helvetica, sans-serif;">v_lsDiet1 ,</span><span style="font-family: Arial, Helvetica, sans-serif;">v_lsDiet2 ,</span><span style="font-family: Arial, Helvetica, sans-serif;">v_lsDietGr ,</span><span style="font-family: Arial, Helvetica, sans-serif;">v_lsDietFr </span><span style="font-family: Arial, Helvetica, sans-serif;">v_lsDietFr </span><span style="font-family: Arial, Helvetica, sans-serif;"> from dual;</span><span style="font-family: Arial, Helvetica, sans-serif;">
</span>
end Pro_Select_LifeStyle;


  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值