Oracle存储过程使用游标,循环游标取数据

1.在存储过程中 定义游标;

  以“cur_yjdl ”为例

create or replace procedure fnStat1399(p_params varchar2,
  p_cursor1401 out sys_refcursor,
  p_partId Integer ) is
  NYDMJ varchar2(100);
  JSYDMJ varchar2(100);
  WLYDMJ varchar2(100);

  --定义 游标cur_yjdl
  CURSOR cur_yjdl IS select  dlm,yjmj from  TDLYXZ 
begin
  --清空原来数据
  delete from DLFXZY where humanId = p_partId;

--2.循环游标取数据   

for yjdl in cur_yjdl loop
    if  yjdl.DLM = 1     --使用dlm字段,yjdl.dlm
      then NYDMJ := yjdl.yjmj * 0.0015;    --使用yimj字段,yjdl.yimj
    elsif  yjdl.DLM = 2 
      then JSYDMJ := yjdl.yjmj * 0.0015;
    else  WLYDMJ := yjdl.yjmj * 0.0015;
end if;
end loop;

--表里插入数据
insert into DLFXZY(humanID,NYDMJ,JSYDMJ,WLYDMJ)  values(p_partId,NYDMJ,JSYDMJ,WLYDMJ);
open p_cursor1401 for select NYDMJ,JSYDMJ,WLYDMJ from DLFXZY where humanId = p_partId;
end;

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值