oracle存储过程之insert的使用,含游标的使用

body部分:

-- 获取指定计划的指定阶段的指定修改次数的计划类型编号和名称 by shiwei  --变更阶段使用
    procedure proc_sy_syjs_getAProChange(proID in jwxt.sy_syjs_audit.FProID%type,
                                              historyStageID in number, 
                                              tab out t_cursor) is
      curStage number; 
               begin
        
               curStage:=-1;
                 select max(jt.fstageid) into curStage
                           from jwxt.SY_SYJS_PROITEM jt
                           where jt.fproid=proID 
                                 and jt.zt=1;
                                 
              	   
                        
                             if(curStage = 1) then
                                           -----初次变更时
                                   insert into jwxt.SY_SYJS_PROITEM( fproid,fstageid, fmodifyid, fcoursecode, fcoursename, fitemid, fitemname, ftype, fstyle, frequirement,
                                       flabmemnum, fgroupnum, fdevicename, fmodel, fhavenum, fobsonum, fbuynum, funitprice) 
                                       select t.fproid,t.fstageid+1,0, t.fcoursecode,t.fcoursename,t.fitemid,t.fitemname,t.ftype,t.fstyle,t.frequirement,
                                              t.flabmemnum,t.fgroupnum,t.fdevicename,t.fmodel,t.fhavenum,t.fobsonum,t.fbuynum,t.funitprice 
                                          
                                           from jwxt.SY_SYJS_PROITEM t
                                           where t.fproid=proID
                                           and t.fstageid='1'
                                           and t.zt='1';
                                           commit;
                                           
                                     else 
                                              ----2次及以上  变更时 复制数据
                                              insert into jwxt.SY_SYJS_PROITEM( fproid,fstageid, fmodifyid, fcoursecode, fcoursename, fitemid, fitemname, ftype, fstyle, frequirement,
                                                 flabmemnum, fgroupnum, fdevicename, fmodel, fhavenum, fobsonum, fbuynum, funitprice) 
                                                  select t.fproid,t.fstageid,t.fmodifyid+1, t.fcoursecode,t.fcoursename,t.fitemid,t.fitemname,t.ftype,t.fstyle,t.frequirement,
                                                       t.flabmemnum,t.fgroupnum,t.fdevicename,t.fmodel,t.fhavenum,t.fobsonum,t.fbuynum,t.funitprice 
                                                      
                                                   from jwxt.SY_SYJS_PROITEM t
                                                   where t.fmodifyid=(select max(mt.fmodifyid) from jwxt.SY_SYJS_PROITEM mt
                                                                             where mt.fproid=proID
                                                                              and mt.fstageid='2'
                                                                             and mt.zt='1' 
                                                                             )
                                                   and t.fproid=proID
                                                   and t.fstageid='2'
                                                    and t.zt='1';
                                                 commit;
                                         end if;  
                                          
                                          open tab for
                                                select t.FProTypeID, t.FProTypeName from jwxt.sy_syjs_audit t
                                          
                                                 where FModifyID=(select max(t.fmodifyid) from jwxt.sy_syjs_proitem td
                                                                   where td.fproid=proID and td.fstageid=historyStageID
                                                                         and td.zt='1')
                                                 and t.fproid=proID and t.fstageid=historyStageID  and t.zt='1';      
                                                 
                                            
                                   
                              
      end;

头文件:

  procedure proc_sy_syjs_getAProChange(proID in jwxt.sy_syjs_audit.FProID%type,
                                              historyStageID in number, 
                                              tab out t_cursor);


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值