CREATE OR REPLACE PROCEDURE SP_ZY_JSSRBB ( as_KSRQ00 IN CHAR, --开始日期 as_JSRQ00 IN CHAR, --结束日期 as_KSSJ00 IN CHAR, --开始时间 as_JSSJ00 IN CHAR, --结束时间 as_XXLB00 IN CHAR, --'0':按发票项目,'1':按一级核算项目'2'按二级核算项目,'3'按病案项目 ad_ID0000 OUT NUMBER, --统计报表对应的ID as_YHMSG0 OUT VARCHAR, --存储过程提示的错误信息 as_SYSMSG OUT VARCHAR, --系统提示的错误信息 as_YYID00 in varchar default '0' --分院ID ) as ls_COUNT0 NUMBER; ls_colnum NUMBER; ls_FBBH00 BM_BRFBB0.FBBH00%TYPE; ls_HJJE00 ZY_FYMX00.HJJE00%TYPE; ls_JMJE00 ZY_FYMX00.JMJE00%type; ls_SQLTXT varchar2(1000); --如果病人中途有结算,然后最后又做了欠费结算的话,本报表重新统计历史数据会发生变化 --正常结算发票项目(非逃跑病人and第一次结算)(注意:病人重新结算时有可能费别发生了变化) CURSOR C_JSSR00_FPXM00 IS select sum(a.HJJE00*D.BZ0000) HJJE00,sum(a.GFJE00*BZ0000) JMJE00, sum(decode(a.JMBZ00,'2',a.JMJE00*D.BZ0000,0)) YHJE00,A.ZYFPID,B.FBBH00 from ZY_FYMX00 A,ZY_JZB000 B,ZY_JZMXXM D where A.MXID00 = D.MXID00 and a.jzdh00 = b.jzdh00 and B.JZDH00 = D.JZDH00 /*and B.CXJZDH+0=0*/ and B.JZRQ00>=as_KSRQ00 and B.JZRQ00<=as_JSRQ00 and B.JZRQ00||JZSJ00 >= as_KSRQ00||as_KSSJ00 and B.JZRQ00||JZSJ00 <= as_JSRQ00||as_JSSJ00 /* and B.JZDH00 not in (select JZDH00 from ZY_BRJFB0 C where ZFFS00='9' and JFRQ00>=as_KSRQ00 and JFRQ00<=as_JSRQ00 and JFRQ00||JFSJ00 >= as_KSRQ00||as_KSSJ00 and JFRQ00||JFSJ00 <= as_JSRQ00||as_JSSJ00)*/ and (as_YYID00='0' or exists (select 1 from BM_BMBM00 where BMBH00=A.KDKS00 and YYID00=as_YYID00) ) group by A.ZYFPID,B.FBBH00 order by B.FBBH00; --正常结算一级核算项目(非逃跑病人and第一次结算) CURSOR C_JSSR00_HSXM01 IS select sum(a.HJJE00*D.BZ0000) HJJE00,sum(a.GFJE00*BZ0000) JMJE00, sum(decode(a.JMBZ00,'2',a.JMJE00*D.BZ0000,0)) YHJE00,H.YJHSID ZYFPID,B.FBBH00 from ZY_FYMX00 A,ZY_JZB000 B,VW_BM_YJHSXM H,ZY_JZMXXM D where A.MXID00 = D.MXID00 and a.jzdh00 = b.jzdh00 and B.JZDH00 = D.JZDH00 and A.HSXMID = H.HSXMID and B.JZRQ00 >= as_KSRQ00 and B.JZRQ00 <= as_JSRQ00 and B.JZRQ00||JZSJ00 >= as_KSRQ00||as_KSSJ00 and B.JZRQ00||JZSJ00 <= as_JSRQ00||as_JSSJ00 /* and B.CXJZDH+0=0 and B.JZDH00 not in (select JZDH00 from ZY_BRJFB0 C where ZFFS00='9' and JFRQ00>=as_KSRQ00 and JFRQ00<=as_JSRQ00 and JFRQ00||JFSJ00 >= as_KSRQ00||as_KSSJ00 and JFRQ00||JFSJ00 <= as_JSRQ00||as_JSSJ00) */ and (as_YYID00='0' or exists (select 1 from BM_BMBM00 where BMBH00=A.KDKS00 and YYID00=as_YYID00) ) group by H.YJHSID,B.FBBH00 order by B.FBBH00; --正常结算二级核算项目(非逃跑病人and第一次结算) CURSOR C_JSSR00_HSXM02 IS select sum(a.HJJE00*D.BZ0000) HJJE00,sum(a.GFJE00*BZ0000) JMJE00, sum(decode(a.JMBZ00,'2',a.JMJE00*D.BZ0000,0)) YHJE00,H.EJHSID ZYFPID,B.FBBH00 from ZY_FYMX00 A,ZY_JZB000 B,VW_BM_EJHSXM H,ZY_JZMXXM D where A.MXID00 = D.MXID00 and a.jzdh00 = b.jzdh00 and B.JZDH00 = D.JZDH00 and A.HSXMID = H.HSXMID and B.JZRQ00 >= as_KSRQ00 and B.JZRQ00 <= as_JSRQ00 and B.JZRQ00||JZSJ00 >= as_KSRQ00||as_KSSJ00 and B.JZRQ00||JZSJ00 <= as_JSRQ00||as_JSSJ00 /*and B.CXJZDH+0=0 and B.JZDH00 not in (select JZDH00 from ZY_BRJFB0 C where ZFFS00='9' and JFRQ00>=as_KSRQ00 and JFRQ00<=as_JSRQ00 and JFRQ00||JFSJ00 >= as_KSRQ00||as_KSSJ00 and JFRQ00||JFSJ00 <= as_JSRQ00||as_JSSJ00)*/ and (as_YYID00='0' or exists (select 1 from BM_BMBM00 where BMBH00=A.KDKS00 and YYID00=as_YYID00) ) group by H.EJHSID,B.FBBH00 order by B.FBBH00; --不正常的结算单号(逃跑病人或者重新结算) CURSOR C_FCJSSR_JZDH00 IS select G.ZYID00,G.JZDH00,G.FBBH00,G.HJJE00 from ZY_JZB000 G where G.JZRQ00>=as_KSRQ00 and G.JZRQ00<=as_JSRQ00 and G.JZRQ00||JZSJ00>=as_KSRQ00||as_KSSJ00 and G.JZRQ00||JZSJ00<=as_JSRQ00||as_JSSJ00 and (G.CXJZDH>0 or G.JZDH00 in (select JZDH00 from ZY_BRJFB0 B where ZFFS00='9' and JFRQ00>=as_KSRQ00 and JFRQ00<=as_JSRQ00 and JFRQ00||JFSJ00 >= as_KSRQ00||as_KSSJ00 and JFRQ00||JFSJ00 <= as_JSRQ00||as_JSSJ00)) and (as_YYID00='0' or exists (select 1 from BM_BMBM00 where BMBH00=G.CZYKS0 and YYID00=as_YYID00) ) ; BEGIN select SQ_BM_GHKSTJ_ID0000.nextval into ad_ID0000 from dual; ls_FBBH00:=0; ls_COUNT0:=1; --GHRQ00--ZYFPID/项目名称 XMHJ00--项目合计 GHKS98--逃跑 GHKS99--减免,GHKS97--优惠 if as_XXLB00 = '0' THEN --按发票项目统计 insert into BM_GHKSTJ (ID0000,GHRQ00) select ad_ID0000,FPXMID from BM_FPXM00 where SYBZ00 in ('2','3'); for AA in C_JSSR00_FPXM00 loop --非逃跑病人正常结算发票项目 if ls_FBBH00<>AA.FBBH00 then select count(*) into ls_colnum from BM_BRFBB0 where FBBH00<=AA.FBBH00; ls_FBBH00:=AA.FBBH00; end if; ls_SQLTXT:='update BM_GHKSTJ set GHKS'||lpad(ls_colnum,2,'0')||'='||to_char(AA.HJJE00)|| ',GHKS97=nvl(GHKS97,0)+'||to_char(AA.YHJE00)|| ',GHKS99=nvl(GHKS99,0)+'||to_char(AA.JMJE00)|| ',XMHJ00=nvl(XMHJ00,0)+'||to_char(AA.HJJE00)|| ' where ID0000='||to_char(ad_ID0000)||' and GHRQ00='''||to_char(AA.ZYFPID)||''''; SP_EXECUTE_SQL(ls_SQLTXT); end loop; --不正常的结算单号(逃跑病人或者重新结算) /* for BB in C_FCJSSR_JZDH00 loop DECLARE cursor C_FCJSSR_FPXM00 is select sum(a.HJJE00*D.BZ0000)HJJE00,sum(decode(a.JMBZ00,'1',a.JMJE00,0)*D.BZ0000) JMJE00, sum(decode(a.JMBZ00,'2',a.JMJE00,0)*D.BZ0000) YHJE00,A.ZYFPID from ZY_FYMX00 A,ZY_JZMXXM D where A.MXID00 = D.MXID00 and D.JZDH00=BB.JZDH00 and (as_YYID00='0' or exists (select 1 from BM_BMBM00 where BMBH00=A.KDKS00 and YYID00=as_YYID00) ) group by A.ZYFPID; begin --判定是否属于逃跑结算 select count(*) into ls_COUNT0 from zy_brjfb0 where zffs00='9' and JZDH00=BB.JZDH00; if ls_COUNT0>0 then--逃跑病人 for AA in C_FCJSSR_FPXM00 loop update BM_GHKSTJ set GHKS98=nvl(GHKS98,0)+nvl(AA.HJJE00,0), GHKS97=nvl(GHKS97,0)+nvl(AA.YHJE00,0), GHKS99=nvl(GHKS99,0)+nvl(AA.JMJE00,0), XMHJ00=nvl(XMHJ00,0)+nvl(AA.HJJE00,0) where ID0000=ad_ID0000 and Trim(GHRQ00)=to_char(AA.ZYFPID); --and Trim(GHRQ00)=AA.ZYFPID; end loop; else--非逃跑病人重新结算 for AA in C_FCJSSR_FPXM00 loop select count(*) into ls_colnum from BM_BRFBB0 where FBBH00<=BB.FBBH00; ls_SQLTXT:='update BM_GHKSTJ set GHKS'||lpad(ls_colnum,2,'0')||'=nvl(GHKS'||lpad(ls_colnum,2,'0')||',0)+'||to_char(AA.HJJE00)|| ',GHKS97=nvl(GHKS97,0)+'||to_char(AA.YHJE00)|| ',GHKS99=nvl(GHKS99,0)+'||to_char(AA.JMJE00)|| ',XMHJ00=nvl(XMHJ00,0)+'||to_char(AA.HJJE00)|| ' where ID0000='||to_char(ad_ID0000)||' and GHRQ00='''||to_char(AA.ZYFPID)||''''; SP_EXECUTE_SQL(ls_SQLTXT); end loop; end if; end; end loop;*/ --发票项目号转成名称 update BM_GHKSTJ a set GHRQ00=(select XMMC00 from BM_FPXM00 b where b.FPXMID=to_number(a.GHRQ00)) where ID0000=ad_ID0000; elsif as_XXLB00 = '1' THEN --按一级核算项目统计 insert into BM_GHKSTJ (ID0000,GHRQ00) select ad_ID0000,HSXMID from BM_YYHSXM WHERE length(trim(BH0000))=2; for AA in C_JSSR00_HSXM01 loop if ls_FBBH00<>AA.FBBH00 then select count(*) into ls_colnum from BM_BRFBB0 where FBBH00<=AA.FBBH00; ls_FBBH00:=AA.FBBH00; end if; --select count(*)into ls_count0 from BM_GHKSTJ where ID0000=ad_ID0000 and GHRQ00=to_char(AA.ZYFPID); --if ls_count0=0 then -- insert into BM_GHKSTJ (ID0000,GHRQ00) values (ad_ID0000,to_char(AA.ZYFPID)); --end if; ls_SQLTXT:='update BM_GHKSTJ set GHKS'||lpad(ls_colnum,2,'0')||'='||to_char(AA.HJJE00)|| ',GHKS97=nvl(GHKS97,0)+'||to_char(AA.YHJE00)|| ',GHKS99=nvl(GHKS99,0)+'||to_char(AA.JMJE00)|| ',XMHJ00=nvl(XMHJ00,0)+'||to_char(AA.HJJE00)|| ' where ID0000='||to_char(ad_ID0000)||' and GHRQ00='''||to_char(AA.ZYFPID)||''''; SP_EXECUTE_SQL(ls_SQLTXT); end loop; --不正常的结算单号(逃跑病人或者重新结算) /* for BB in C_FCJSSR_JZDH00 loop DECLARE cursor C_FCJSSR_HSXM01 is select sum(a.HJJE00*D.BZ0000)HJJE00,sum(decode(a.JMBZ00,'1',a.JMJE00,0)*D.BZ0000) JMJE00, sum(decode(a.JMBZ00,'2',a.JMJE00,0)*D.BZ0000) YHJE00,H.YJHSID ZYFPID from ZY_FYMX00 A,ZY_JZMXXM D,VW_BM_YJHSXM H where A.MXID00 = D.MXID00 and A.HSXMID=H.HSXMID and D.JZDH00=BB.JZDH00 and (as_YYID00='0' or exists (select 1 from BM_BMBM00 where BMBH00=A.KDKS00 and YYID00=as_YYID00) ) group by H.YJHSID; begin --判定是否属于逃跑结算 select count(*) into ls_COUNT0 from zy_brjfb0 where zffs00='9' and JZDH00=BB.JZDH00; if ls_COUNT0>0 then--逃跑病人 for AA in C_FCJSSR_HSXM01 loop update BM_GHKSTJ set GHKS98=nvl(GHKS98,0)+nvl(AA.HJJE00,0), GHKS97=nvl(GHKS97,0)+nvl(AA.YHJE00,0), GHKS99=nvl(GHKS99,0)+nvl(AA.JMJE00,0), XMHJ00=nvl(XMHJ00,0)+nvl(AA.HJJE00,0) where ID0000=ad_ID0000 and Trim(GHRQ00)=to_char(AA.ZYFPID); --and Trim(GHRQ00)=AA.ZYFPID; end loop; else--非逃跑病人重新结算 for AA in C_FCJSSR_HSXM01 loop select count(*) into ls_colnum from BM_BRFBB0 where FBBH00<=BB.FBBH00; ls_SQLTXT:='update BM_GHKSTJ set GHKS'||lpad(ls_colnum,2,'0')||'=nvl(GHKS'||lpad(ls_colnum,2,'0')||',0)+'||to_char(AA.HJJE00)|| ',GHKS97=nvl(GHKS97,0)+'||to_char(AA.YHJE00)|| ',GHKS99=nvl(GHKS99,0)+'||to_char(AA.JMJE00)|| ',XMHJ00=nvl(XMHJ00,0)+'||to_char(AA.HJJE00)|| ' where ID0000='||to_char(ad_ID0000)||' and GHRQ00='''||to_char(AA.ZYFPID)||''''; SP_EXECUTE_SQL(ls_SQLTXT); end loop; end if; end; end loop;*/ --发票项目号转成名称 update BM_GHKSTJ a set GHRQ00=(select HSXMMC from BM_YYHSXM b where b.HSXMID=to_number(a.GHRQ00)) where ID0000=ad_ID0000; elsif as_XXLB00 = '2' THEN --按二级核算项目统计 insert into BM_GHKSTJ (ID0000,GHRQ00) select ad_ID0000,HSXMID from BM_YYHSXM WHERE length(trim(BH0000))<=4; for AA in C_JSSR00_HSXM02 loop if ls_FBBH00<>AA.FBBH00 then select count(*) into ls_colnum from BM_BRFBB0 where FBBH00<=AA.FBBH00; ls_FBBH00:=AA.FBBH00; end if; --select count(*)into ls_count0 from BM_GHKSTJ where ID0000=ad_ID0000 and GHRQ00=to_char(AA.ZYFPID); --if ls_count0=0 then -- insert into BM_GHKSTJ (ID0000,GHRQ00) values (ad_ID0000,to_char(AA.ZYFPID)); --end if; ls_SQLTXT:='update BM_GHKSTJ set GHKS'||lpad(ls_colnum,2,'0')||'='||to_char(AA.HJJE00)|| ',GHKS97=nvl(GHKS97,0)+'||to_char(AA.YHJE00)|| ',GHKS99=nvl(GHKS99,0)+'||to_char(AA.JMJE00)|| ',XMHJ00=nvl(XMHJ00,0)+'||to_char(AA.HJJE00)|| ' where ID0000='||to_char(ad_ID0000)||' and GHRQ00='''||to_char(AA.ZYFPID)||''''; SP_EXECUTE_SQL(ls_SQLTXT); end loop; --非逃跑病人不正常结算单号 /* for BB in C_FCJSSR_JZDH00 loop DECLARE cursor C_FCJSSR_HSXM02 is select sum(a.HJJE00*D.BZ0000)HJJE00,sum(decode(a.JMBZ00,'1',a.JMJE00,0)*D.BZ0000) JMJE00, sum(decode(a.JMBZ00,'2',a.JMJE00,0)*D.BZ0000) YHJE00,H.EJHSID ZYFPID from ZY_FYMX00 A,ZY_JZMXXM D,VW_BM_EJHSXM H where A.MXID00 = D.MXID00 and A.HSXMID=H.HSXMID and D.JZDH00=BB.JZDH00 and (as_YYID00='0' or exists (select 1 from BM_BMBM00 where BMBH00=A.KDKS00 and YYID00=as_YYID00) ) group by H.EJHSID; begin --判定是否属于逃跑结算 select count(*) into ls_COUNT0 from zy_brjfb0 where zffs00='9' and JZDH00=BB.JZDH00; if ls_COUNT0>0 then--逃跑病人 for AA in C_FCJSSR_HSXM02 loop update BM_GHKSTJ set GHKS98=nvl(GHKS98,0)+nvl(AA.HJJE00,0), GHKS97=nvl(GHKS97,0)+nvl(AA.YHJE00,0), GHKS99=nvl(GHKS99,0)+nvl(AA.JMJE00,0), XMHJ00=nvl(XMHJ00,0)+nvl(AA.HJJE00,0) where ID0000=ad_ID0000 and Trim(GHRQ00)=to_char(AA.ZYFPID); --and Trim(GHRQ00)=AA.ZYFPID; end loop; else--非逃跑病人重新结算 for AA in C_FCJSSR_HSXM02 loop select count(*) into ls_colnum from BM_BRFBB0 where FBBH00<=BB.FBBH00; ls_SQLTXT:='update BM_GHKSTJ set GHKS'||lpad(ls_colnum,2,'0')||'=nvl(GHKS'||lpad(ls_colnum,2,'0')||',0)+'||to_char(AA.HJJE00)|| ',GHKS97=nvl(GHKS97,0)+'||to_char(AA.YHJE00)|| ',GHKS99=nvl(GHKS99,0)+'||to_char(AA.JMJE00)|| ',XMHJ00=nvl(XMHJ00,0)+'||to_char(AA.HJJE00)|| ' where ID0000='||to_char(ad_ID0000)||' and GHRQ00='''||to_char(AA.ZYFPID)||''''; SP_EXECUTE_SQL(ls_SQLTXT); end loop; end if; end; end loop;*/ --发票项目号转成名称 update BM_GHKSTJ a set GHRQ00=(select HSXMMC from BM_YYHSXM b where b.HSXMID=to_number(a.GHRQ00)) where ID0000=ad_ID0000; end if; --生成合计记录 insert into BM_GHKSTJ (ID0000,GHRQ00,XMHJ00, GHKS01,GHKS02,GHKS03,GHKS04,GHKS05,GHKS06,GHKS07,GHKS08,GHKS09,GHKS10, GHKS11,GHKS12,GHKS13,GHKS14,GHKS15,GHKS16,GHKS17,GHKS18,GHKS19,GHKS20, GHKS21,GHKS22,GHKS23,GHKS24,GHKS25,GHKS26,GHKS27,GHKS28,GHKS29,GHKS30, GHKS31,GHKS32,GHKS33,GHKS34,GHKS35,GHKS36,GHKS37,GHKS38,GHKS39,GHKS40, GHKS41,GHKS42,GHKS43,GHKS44,GHKS45,GHKS46,GHKS47,GHKS48,GHKS49,GHKS50, GHKS51,GHKS52,GHKS53,GHKS54,GHKS55,GHKS56,GHKS57,GHKS58,GHKS59,GHKS60, GHKS61,GHKS62,GHKS63,GHKS64,GHKS65,GHKS66,GHKS67,GHKS68,GHKS69,GHKS70, GHKS71,GHKS72,GHKS73,GHKS74,GHKS75,GHKS76,GHKS77,GHKS78,GHKS79,GHKS80, GHKS81,GHKS82,GHKS83,GHKS84,GHKS85,GHKS86,GHKS87,GHKS88,GHKS89,GHKS90, GHKS91,GHKS92,GHKS93,GHKS94,GHKS95,GHKS96,GHKS97,GHKS98,GHKS99) select ad_ID0000,' 合计',sum(XMHJ00), sum(GHKS01),sum(GHKS02),sum(GHKS03),sum(GHKS04),sum(GHKS05),sum(GHKS06),sum(GHKS07),sum(GHKS08),sum(GHKS09),sum(GHKS10), sum(GHKS11),sum(GHKS12),sum(GHKS13),sum(GHKS14),sum(GHKS15),sum(GHKS16),sum(GHKS17),sum(GHKS18),sum(GHKS19),sum(GHKS20), sum(GHKS21),sum(GHKS22),sum(GHKS23),sum(GHKS24),sum(GHKS25),sum(GHKS26),sum(GHKS27),sum(GHKS28),sum(GHKS29),sum(GHKS30), sum(GHKS31),sum(GHKS32),sum(GHKS33),sum(GHKS34),sum(GHKS35),sum(GHKS36),sum(GHKS37),sum(GHKS38),sum(GHKS39),sum(GHKS40), sum(GHKS41),sum(GHKS42),sum(GHKS43),sum(GHKS44),sum(GHKS45),sum(GHKS46),sum(GHKS47),sum(GHKS48),sum(GHKS49),sum(GHKS50), sum(GHKS51),sum(GHKS52),sum(GHKS53),sum(GHKS54),sum(GHKS55),sum(GHKS56),sum(GHKS57),sum(GHKS58),sum(GHKS59),sum(GHKS60), sum(GHKS61),sum(GHKS62),sum(GHKS63),sum(GHKS64),sum(GHKS65),sum(GHKS66),sum(GHKS67),sum(GHKS68),sum(GHKS69),sum(GHKS70), sum(GHKS71),sum(GHKS72),sum(GHKS73),sum(GHKS74),sum(GHKS75),sum(GHKS76),sum(GHKS77),sum(GHKS78),sum(GHKS79),sum(GHKS80), sum(GHKS81),sum(GHKS82),sum(GHKS83),sum(GHKS84),sum(GHKS85),sum(GHKS86),sum(GHKS87),sum(GHKS88),sum(GHKS89),sum(GHKS90), sum(GHKS91),sum(GHKS92),sum(GHKS93),sum(GHKS94),sum(GHKS95),sum(GHKS96),sum(GHKS97),sum(GHKS98),sum(GHKS99) from BM_GHKSTJ where ID0000=ad_ID0000; --空值处理 update BM_GHKSTJ set XMHJ00=nvl(XMHJ00,0), GHKS01=nvl(GHKS01,0),GHKS02=nvl(GHKS02,0),GHKS03=nvl(GHKS03,0),GHKS04=nvl(GHKS04,0),GHKS05=nvl(GHKS05,0),GHKS06=nvl(GHKS06,0),GHKS07=nvl(GHKS07,0),GHKS08=nvl(GHKS08,0),GHKS09=nvl(GHKS09,0),GHKS10=nvl(GHKS10,0), GHKS11=nvl(GHKS11,0),GHKS12=nvl(GHKS12,0),GHKS13=nvl(GHKS13,0),GHKS14=nvl(GHKS14,0),GHKS15=nvl(GHKS15,0),GHKS16=nvl(GHKS16,0),GHKS17=nvl(GHKS17,0),GHKS18=nvl(GHKS18,0),GHKS19=nvl(GHKS19,0),GHKS20=nvl(GHKS20,0), GHKS21=nvl(GHKS21,0),GHKS22=nvl(GHKS22,0),GHKS23=nvl(GHKS23,0),GHKS24=nvl(GHKS24,0),GHKS25=nvl(GHKS25,0),GHKS26=nvl(GHKS26,0),GHKS27=nvl(GHKS27,0),GHKS28=nvl(GHKS28,0),GHKS29=nvl(GHKS29,0),GHKS30=nvl(GHKS30,0), GHKS31=nvl(GHKS31,0),GHKS32=nvl(GHKS32,0),GHKS33=nvl(GHKS33,0),GHKS34=nvl(GHKS34,0),GHKS35=nvl(GHKS35,0),GHKS36=nvl(GHKS36,0),GHKS37=nvl(GHKS37,0),GHKS38=nvl(GHKS38,0),GHKS39=nvl(GHKS39,0),GHKS40=nvl(GHKS40,0), GHKS41=nvl(GHKS41,0),GHKS42=nvl(GHKS42,0),GHKS43=nvl(GHKS43,0),GHKS44=nvl(GHKS44,0),GHKS45=nvl(GHKS45,0),GHKS46=nvl(GHKS46,0),GHKS47=nvl(GHKS47,0),GHKS48=nvl(GHKS48,0),GHKS49=nvl(GHKS49,0),GHKS50=nvl(GHKS50,0), GHKS51=nvl(GHKS51,0),GHKS52=nvl(GHKS52,0),GHKS53=nvl(GHKS53,0),GHKS54=nvl(GHKS54,0),GHKS55=nvl(GHKS55,0),GHKS56=nvl(GHKS56,0),GHKS57=nvl(GHKS57,0),GHKS58=nvl(GHKS58,0),GHKS59=nvl(GHKS59,0),GHKS60=nvl(GHKS60,0), GHKS61=nvl(GHKS61,0),GHKS62=nvl(GHKS62,0),GHKS63=nvl(GHKS63,0),GHKS64=nvl(GHKS64,0),GHKS65=nvl(GHKS65,0),GHKS66=nvl(GHKS66,0),GHKS67=nvl(GHKS67,0),GHKS68=nvl(GHKS68,0),GHKS69=nvl(GHKS69,0),GHKS70=nvl(GHKS70,0), GHKS71=nvl(GHKS71,0),GHKS72=nvl(GHKS72,0),GHKS73=nvl(GHKS73,0),GHKS74=nvl(GHKS74,0),GHKS75=nvl(GHKS75,0),GHKS76=nvl(GHKS76,0),GHKS77=nvl(GHKS77,0),GHKS78=nvl(GHKS78,0),GHKS79=nvl(GHKS79,0),GHKS80=nvl(GHKS80,0), GHKS81=nvl(GHKS81,0),GHKS82=nvl(GHKS82,0),GHKS83=nvl(GHKS83,0),GHKS84=nvl(GHKS84,0),GHKS85=nvl(GHKS85,0),GHKS86=nvl(GHKS86,0),GHKS87=nvl(GHKS87,0),GHKS88=nvl(GHKS88,0),GHKS89=nvl(GHKS89,0),GHKS90=nvl(GHKS90,0), GHKS91=nvl(GHKS91,0),GHKS92=nvl(GHKS92,0),GHKS93=nvl(GHKS93,0),GHKS94=nvl(GHKS94,0),GHKS95=nvl(GHKS95,0),GHKS96=nvl(GHKS96,0),GHKS97=nvl(GHKS97,0),GHKS98=nvl(GHKS98,0),GHKS99=nvl(GHKS99,0) where ID0000=ad_ID0000; EXCEPTION WHEN OTHERS THEN as_YHMSG0:='出错原因不详,请记录此信息并和系统管理员联系!'; as_SYSMSG:=substr(SQLERRM||'执行存储过程错误:SP_ZY_JSSRBB('||as_KSRQ00||','||as_JSRQ00||','||as_XXLB00||',ad_ID0000,as_YHMSG0,as_SYSMSG',1,150); ROLLBACK; END;