17,086
社区成员
发帖
与我相关
我的任务
分享
create or replace procedure batchcreatevoucherno
(
czlx varchar2(50),--操作类型
dfgy varchar2(50),--对方柜员
userid number, --考生ID
examid number,
taskid number,
planid number,
formid varchar2(20),
banksiteid number
)
is
v_sql varchar2(4000);
model_count number;
v_pzlx varchar2(50); --凭证类型
v_qshm varchar2(50); --起始号码
v_zzhm varchar2(50); --终止号码
v_pzsl number; --凭证数量
v_start number; --起始号码后6位
v_end number; --终止号码后6位
v_voucher_font varchar2(50);
begin
select count(*) into model_count from tb_daily_voucher where planid = 21;
for i in 1..model_count loop
select pzlx,qshm,zzhm,pzsl
into v_pzlx,v_qshm,v_zzhm,v_pzsl
from(select row_number() over(order by id) as rownumber, *
from tb_daily_voucher
where planid = 21
) temp
where temp.rownumber = i;
insert into yw_050504(sle_czlx,sle_dfgy,sle_pzzl,txt_qshm,txt_zzhm,txt_pzsl,operator,addtime,userid,examid,taskid,planid)
values(czlx,dfgy,v_pzlx,v_qshm,v_zzhm,v_pzsl,null,sysdate,userid,examid,taskid,planid);
commit;
v_voucher_font := substr(v_qshm,length(v_qshm)-5);
v_start := substr(v_qshm,length(v_qshm)-5,6);
v_end := substr(v_zzhm,length(v_zzhm)-5,6);
while (v_start<= v_end) loop
insert into zhyw_formvoucherno(formid,vouchertype,voucherno,banksiteid,userid,planid,taskid,examid,createdate,status)
values(formid,v_pzlx,v_voucher_font,'00000000000000000000',ltrim(v_start),banksiteid,userid,planid,taskid,examid,sysdate,'未使用');
commit;
v_start := v_start+1;
end loop;
end loop;
end batchcreatevoucherno;