prompt prompt Creating view VW_ZY_DBZTJBB prompt =========================== prompt create or replace view sd_hospital.vw_zy_dbztjbb as select ZYID00 , --住院ID DQKS00 , --当前病人住院科室 DQKSMC , --当前病人住院科室名称 RYCWH0 , --病人住院床号 ZYH000 , --住院号 XM0000 , --姓名 XB0000 , --性别 NL0000 , --年龄 FBXX00 , --费别信息 SXYS00 , --主管医生员工号 SXYSXM , --主管医生员姓名 SJRYRQ , --实际入院日期 SJCYRQ , --实际出院日期 ZYTS00 , --住院天数 JRRQ00 , --进入日期 TCRQ00 , --退出日期 BZMC00 , --病种名称 FFBZBM , --付费病种编码 BZSFJE , --病种收费标准 SPDBZ0 , --正确病种编码 SPBZMC , --正确病种名称 BZNZFY , --病种内费用 BZWFY0 , --病种外费用 KLSHCF , --可另收除外耗材 ZCE000 , --总差额 CBCWFY , --超标床位费用 ZJE000 , --总金额 HCF000 , --耗材费 HCFJLS , --耗材费减可另收 yefy00 ,--婴儿费用 CYZD00 , --出院诊断 CYZDMC , --出院诊断名称 SSM000 , --手术码 SSMC00 , --手术名称 BZWCLF , --病种外材料费 BZNCLF , --病种内材料费 DQBQ00 , --当前病区 GHF000 , --挂号费 CWF000 , --床位费 ZCF000 , --诊察费 HLF000 , --护理费 JCF000 , --检查费 MRIF00 , --MRI费 CTF000 , --CT费 CCF000 , --彩超费 ZLF000 , --治疗费 SYF000 , --输氧费 SXF000 , --输血费 SSF000 , --手术费 MZF000 , --麻醉费 MZXGXM , --麻醉相关项目费 HYF000 , --化验费 QTYLF0 , --其他医疗费 XYF000 , --西药费 ZCY000 , --中成药 CYF000 , --中草药 QT0000 , --其他 JFCF00 , --救护车费 WSCLF0 , --卫生材料费 MZYF00 , --麻醉药费 TJBZBM , --统计病种编码 TJBZMC , --统计病种名称 TJZCZ0 , --统计主操作 TJCWHC , --统计除外材料 MZCLF0 , --麻醉材料费 CYZD01 , --出院诊断1 substrb(SJCYRQ,1,6) as SJCYYF, --出院月份 ID0000 --统计ID, from ZY_DBZTJ0_TEMP where (FFBZBM is not null or SPDBZ0 is not null ) -- and SPDBZ0 not in (select BZBM00 from ZY_DBZTJ0 where BZQS00 is null) / CREATE OR REPLACE PROCEDURE SD_HOSPITAL.SP_ZY_CYDBZTJ ( Pcyqsrq in number , --出院起始日期 Pcyjsrq in number , --出院结束日期 PID0000 out number --统计报表对应的ID ) -- MODIFICATION HISTORY -- Person Date Comments -- qks 2018.09.19 create:出院病人单病种统计; for ZYSF9-20180920-002 -- 病种外费用(不含单列除外耗材)和 可另收除外耗材,加上病种内费用总和与总金额一致 as Ecustom exception; ls_YHMSG0 varchar2(100); ls_jsce00 number(20); Vyyid00 XT_YYXX00.YYID00%TYPE; begin delete ZY_DBZTJ0_TEMP; select SQ_BM_GHKSTJ_ID0000.nextval into PID0000 from dual; select SF_SF_GETYYID00() YYID00 into Vyyid00 from dual; --插入初始数据 insert into ZY_DBZTJ0_TEMP ( ID0000, ZYID00, DQKS00, DQKSMC, RYCWH0, ZYH000, XM0000, XB0000, NL0000, FBXX00, SXYS00, SXYSXM, SJRYRQ, SJCYRQ, JRRQ00, TCRQ00, BZMC00, FFBZBM, BZSFJE, BZNZFY, ZCE000, ZJE000, BZWCLF, CBCWFY, BZNCLF, CYZD00, CYZDMC, SSM000, SSMC00, ZYTS00, SPDBZ0,yefy00 ) select PID0000,a.zyid00,a.dqks00,a.dqksmc,a.RYCWH0,a.zyh000,a.XM0000,a.XB0000,substr(sf_xt_csrqtonl(a.CSRQ00),1,10) as NL0000, a.ybmc00 as fbxx00,a.sxys00,a.sxysxm,a.SJRYRQ,a.SJCYRQ,'' jrrq00,'' tcrq00,a.DBZMC0 BZMC00,a.FFBZBM FFBZBM, '' BZSFJE,0 as BZNZFY,0 zce000,0 zje000, 0 bzwclf,0 CBCWFY,0 bznclf,a.CYZD00,a.CYZDMC, (select substr(wmsys.wm_concat(trim(n.ssm000)),1,100) From ba_brssxx n where n.lsh000=a.zyid00 /*and ssxh00=1 and rownum=1*/) ssm000, (select substr(wmsys.wm_concat(trim(n.ssmc00)),1,100) From ba_brssxx n where n.lsh000=a.zyid00 /*and ssxh00=1 and rownum=1*/) ssmc00, to_number(decode(to_date(a.SJCYRQ,'YYYYMMDD')-to_date(a.SJRYRQ,'YYYYMMDD'),0,1,to_date(a.SJCYRQ,'YYYYMMDD')-to_date(a.SJRYRQ,'YYYYMMDD'))) ZYTS00, SF_ZY_GETDBZXX(a.zyid00,'1') spdbz0,0 yefy00 from VW_ZY_BRXXB0 a where sjcyrq between Pcyqsrq and Pcyjsrq group by a.zyid00,a.dqks00,a.dqksmc,a.RYCWH0,a.zyh000,a.XM0000,a.XB0000,a.CSRQ00,a.ybmc00,a.sxys00,a.sxysxm,a.SJRYRQ,a.SJCYRQ, a.DBZMC0 , a.FFBZBM,a.CYZD00,a.CYZDMC; update ZY_DBZTJ0_TEMP a set (GHF000,CWF000,ZCF000,HLF000,JCF000,MRIF00,CTF000,CCF000,ZLF000,SYF000,SXF000,SSF000,MZF000,MZXGXM, HYF000,QTYLF0,XYF000,ZCY000,CYF000,QT0000,JFCF00,WSCLF0,HCF000,ZJE000, MZYF00,MZCLF0,yefy00) =( select sum(decode(kjxmid,100,hjje00,0)) , --挂号费, sum(decode(kjxmid,101,hjje00,0)) , --床位费, sum(decode(kjxmid,102,hjje00,0)) , --诊察费, sum(decode(kjxmid,103,hjje00,0)) , --护理费, sum(decode(kjxmid,104,hjje00,0)) , --检查费, sum(decode(kjxmid,105,hjje00,0)) , --MRI费, sum(decode(kjxmid,106,hjje00,0)) , --CT费, sum(decode(kjxmid,107,hjje00,0)) , --彩超费, sum(decode(kjxmid,108,hjje00,0)) , --治疗费, sum(decode(kjxmid,109,hjje00,0)) , --输氧费, sum(decode(kjxmid,110,hjje00,0)) , --输血费, sum(decode(kjxmid,111,hjje00,0)) , --手术费, sum(decode(kjxmid,112,hjje00,0)) , --麻醉费, sum(decode(kjxmid,113,hjje00,0)) , --麻醉相关项目费, sum(decode(kjxmid,114,hjje00,0)) , --化验费, sum(decode(kjxmid,115,hjje00,0)) , --其他医疗费, sum(decode(kjxmid,116,hjje00,0)) , --西药费, sum(decode(kjxmid,117,hjje00,0)) , --中成药, sum(decode(kjxmid,118,hjje00,0)) , --中草药, sum(decode(kjxmid,119,hjje00,0)) , --其他, sum(decode(kjxmid,120,hjje00,0)) , --救护车费, sum(decode(kjxmid,121,hjje00,0)) , --卫生材料费 sum(decode(SFLB00,'2',HJJE00,0)), --耗材费 sum(hjje00), --总金额 sum(case when sflb00='3' and kdks00 in (select BMBH00 from vw_bm_mzbm00) then hjje00 else 0 end), --麻醉药费 sum(case when kjxmid in (121) and zxks00 in (select BMBH00 from vw_bm_mzbm00) then hjje00 else 0 end) , --麻醉材料费 sum(case when yexm00 is not null then hjje00 else 0 end) --婴儿费用 from zy_fymx00 where zyid00=a.zyid00 ) where ID0000=PID0000; if Vyyid00 = '220006' then update ZY_DBZTJ0_TEMP a set spdbz0='BZ0000139' where spdbz0='BZ0000135' AND ssmc00 LIKE '%显微镜%' and id0000=PID0000; update ZY_DBZTJ0_TEMP a set spdbz0='BZ0000138' where spdbz0='BZ0000134' AND ssmc00 LIKE '%显微镜%' and id0000=PID0000; update ZY_DBZTJ0_TEMP a set spdbz0='BZ0000135' where spdbz0='BZ0000139' AND ssmc00 not LIKE '%显微镜%' and id0000=PID0000; update ZY_DBZTJ0_TEMP a set spdbz0='BZ0000134' where spdbz0='BZ0000138' AND ssmc00 not LIKE '%显微镜%' and id0000=PID0000; --'BZ0000223' 病种修正 update ZY_DBZTJ0_TEMP a set cyzd01 = (select substr(trim(wmsys.wm_concat(trim(n.zdm000))),1,200) From bq_brzdxx n where n.zyid00=a.zyid00 ) where id0000=PID0000; update ZY_DBZTJ0_TEMP a set spdbz0 = 'BZ0000223' where ssm000 like '%74.1 002%' and cyzd01 not like '%O82.800%' and cyzd01 not like '%O82.900%' and spdbz0 is null and id0000=PID0000; end if; --update ZY_DBZTJ0_TEMP a set spdbz0='' where "年龄">=14 and spdbz0 in (select bzbm00 from zy_dbztj0 where BZQS00=14); --修正单病种出院病人数据 update ZY_DBZTJ0_TEMP a set BZSFJE=(select nvl(bzsfje,0) from BM_BZSFBZ b,zy_brxxb0 c where a.zyid00=c.zyid00 and c.fbbh00=b.fbbh00 and c.ybzxlb=b.ybzxlb and a.FFBZBM=b.ffbzbm), BZNZFY=(select nvl(sum(d.brzje0) - sum(d.ybyl33 + d.ybyl34), 0) from zy_jzb000 d where a.zyid00=d.zyid00), zce000=(select nvl((sum(d.brzje0) - sum(d.ybyl33 + d.ybyl34)) - sum(c.BZSFJE*sign(d.hjje00)), 0) from zy_jzb000 d,BM_BZSFBZ c where a.zyid00=d.zyid00 and d.fbbh00=c.fbbh00 and d.ybzxlb=c.ybzxlb and d.ffbzbm=c.ffbzbm), bzwclf=(select nvl(sum(d.YBYL34),0) from zy_jzb000 d where a.zyid00=d.zyid00), CBCWFY=(select nvl(sum(d.YBYL33), 0) from zy_jzb000 d where a.zyid00=d.zyid00), JRRQ00=(select JRRQ00 from ZY_DBZCZB where CZBID0= (select max(czbid0) from ZY_DBZCZB where zyid00=a.zyid00)), tcrq00=(select tcrq00 from ZY_DBZCZB where CZBID0= (select max(czbid0) from ZY_DBZCZB where zyid00=a.zyid00)), KLSHCF=(select nvl( sum(d.ybyl34), 0) from zy_jzb000 d where a.zyid00=d.zyid00) where ffbzbm is not null and id0000=PID0000; --修正符合单病种但未按病种出院数据 update ZY_DBZTJ0_TEMP a set -- BZSFJE=(select bzsfje from BM_BZSFBZ b,zy_brxxb0 c where a.zyid00=c.zyid00 and c.fbbh00=b.fbbh00 and c.ybzxlb=b.ybzxlb and a.spdbz0=b.ffbzbm) BZSFJE=(select bzsfje from BM_BZSFBZ b where fbbh00='1' and a.spdbz0=b.ffbzbm), JRRQ00=(select JRRQ00 from ZY_DBZCZB where CZBID0= (select max(czbid0) from ZY_DBZCZB where zyid00=a.zyid00 )), tcrq00=(select tcrq00 from ZY_DBZCZB where CZBID0= (select max(czbid0) from ZY_DBZCZB where zyid00=a.zyid00)), KLSHCF=(select nvl(sum(hjje00),0) from zy_fymx00 where zyid00=a.zyid00 and xmbh00 in (select i.sfxmid from bm_tyzd00 h,bm_yysfxm i where zdmc00 like '%单病种另行收费耗材%' and i.bh0000 like '9%' and substr(i.bh0000,1,6)=h.BH0002 and BZDYBH=a.spdbz0)), spbzmc=(select bzmc00 from BM_BZSFBZ where spdbz0=FFBZBM and rownum=1) where ffbzbm is null and id0000=PID0000; delete ZY_DBZTJ0_TEMP where trim(ffbzbm) is null and trim(spdbz0) is null and id0000=PID0000; --按财务科要求将麻醉科开单药费归属到麻醉费中,同时西药费减掉这笔钱。 update ZY_DBZTJ0_TEMP a set HCFJLS=nvl(HCF000-KLSHCF,0) , MZF000 =nvl(MZF000+MZYF00+MZCLF0,0) , XYF000=nvl(XYF000-MZYF00,0) , WSCLF0=nvl(WSCLF0-MZCLF0,0), TJBZBM=decode(FFBZBM,null,spdbz0,FFBZBM), TJBZMC=decode(bzmc00,null,spbzmc,bzmc00) where id0000=PID0000; update ZY_DBZTJ0_TEMP a set TJZCZ0=(select ZCZMC0 from BM_BZSFBZ where TJBZBM=FFBZBM and rownum=1), TJCWHC=(select substr(wm_concat(MC0000),1,100)from bm_tyzd00 where zdmc00 like '%单病种另行收费耗材%'and BZDYBH=a.TJBZBM) where id0000=PID0000; --将出院病种与正确病种不一致数据出院病种编码加 - 号 update ZY_DBZTJ0_TEMP set FFBZBM='-'||FFBZBM where nvl(FFBZBM,'0')<>nvl(SPDBZ0,'0') and id0000=PID0000; select nvl(sum(HCF000 -HCFJLS-KLSHCF),0) into ls_jsce00 from ZY_DBZTJ0_TEMP where id0000=PID0000; if ls_jsce00<>0 then ls_YHMSG0:='耗材费减可另收数据异常!'; ls_jsce00 :='a'; end if ; update ZY_DBZTJ0_TEMP set XM0000='(未结)'||XM0000 where FFBZBM<>'-' and bznzfy=0 and id0000=PID0000; select sum(ZJE000- GHF000 - CWF000- ZCF000- HLF000 - JCF000 - MRIF00 - CTF000 - CCF000- ZLF000- SYF000 - SXF000 - SSF000 - MZF000 - MZXGXM - HYF000- QTYLF0 - XYF000 - ZCY000 - CYF000- QT0000- JFCF00 - WSCLF0) into ls_jsce00 from ZY_DBZTJ0_TEMP a where id0000=PID0000; if ls_jsce00<>0 then ls_YHMSG0:='明细金额不等于合计金额!'; ls_jsce00 :='a'; -- return OTHERS; end if ; --写入统计字段对应标题名, delete from BM_GHKSTJ_KSDY00 where ID0000=PID0000; insert into BM_GHKSTJ_KSDY00(ID0000,BH0000,GHKSBH,GHKSMC) values (PID0000,'DQKSMC',0,'出院科室 '); insert into BM_GHKSTJ_KSDY00(ID0000,BH0000,GHKSBH,GHKSMC) values (PID0000,'RYCWH0',0,'床号 '); insert into BM_GHKSTJ_KSDY00(ID0000,BH0000,GHKSBH,GHKSMC) values (PID0000,'ZYH000',0,'住院号 '); insert into BM_GHKSTJ_KSDY00(ID0000,BH0000,GHKSBH,GHKSMC) values (PID0000,'XM0000',0,'姓名 '); insert into BM_GHKSTJ_KSDY00(ID0000,BH0000,GHKSBH,GHKSMC) values (PID0000,'XB0000',0,'性别 '); insert into BM_GHKSTJ_KSDY00(ID0000,BH0000,GHKSBH,GHKSMC) values (PID0000,'NL0000',0,'年龄 '); insert into BM_GHKSTJ_KSDY00(ID0000,BH0000,GHKSBH,GHKSMC) values (PID0000,'FBXX00',0,'费别信息 '); insert into BM_GHKSTJ_KSDY00(ID0000,BH0000,GHKSBH,GHKSMC) values (PID0000,'SXYSXM',0,'经管医师 '); insert into BM_GHKSTJ_KSDY00(ID0000,BH0000,GHKSBH,GHKSMC) values (PID0000,'SJRYRQ',0,'入院日期 '); insert into BM_GHKSTJ_KSDY00(ID0000,BH0000,GHKSBH,GHKSMC) values (PID0000,'SJCYRQ',0,'出院日期 '); insert into BM_GHKSTJ_KSDY00(ID0000,BH0000,GHKSBH,GHKSMC) values (PID0000,'ZYTS00',0,'住院天数 '); insert into BM_GHKSTJ_KSDY00(ID0000,BH0000,GHKSBH,GHKSMC) values (PID0000,'JRRQ00',0,'进入单病种日期 '); insert into BM_GHKSTJ_KSDY00(ID0000,BH0000,GHKSBH,GHKSMC) values (PID0000,'TCRQ00',0,'退出单病种日期 '); insert into BM_GHKSTJ_KSDY00(ID0000,BH0000,GHKSBH,GHKSMC) values (PID0000,'BZMC00',0,'出院单病种名称 '); insert into BM_GHKSTJ_KSDY00(ID0000,BH0000,GHKSBH,GHKSMC) values (PID0000,'FFBZBM',0,'出院单病种编码 '); insert into BM_GHKSTJ_KSDY00(ID0000,BH0000,GHKSBH,GHKSMC) values (PID0000,'BZSFJE',0,'单病种定额 '); insert into BM_GHKSTJ_KSDY00(ID0000,BH0000,GHKSBH,GHKSMC) values (PID0000,'SPDBZ0',0,'正确病种编码 '); insert into BM_GHKSTJ_KSDY00(ID0000,BH0000,GHKSBH,GHKSMC) values (PID0000,'BZNZFY',0,'病种内总费用 '); insert into BM_GHKSTJ_KSDY00(ID0000,BH0000,GHKSBH,GHKSMC) values (PID0000,'BZWFY0',0,'病种外费用 '); insert into BM_GHKSTJ_KSDY00(ID0000,BH0000,GHKSBH,GHKSMC) values (PID0000,'KLSHCF',0,'可另收除外耗材 '); insert into BM_GHKSTJ_KSDY00(ID0000,BH0000,GHKSBH,GHKSMC) values (PID0000,'ZCE000',0,'总差额 '); insert into BM_GHKSTJ_KSDY00(ID0000,BH0000,GHKSBH,GHKSMC) values (PID0000,'CBCWFY',0,'超标床位费用 '); insert into BM_GHKSTJ_KSDY00(ID0000,BH0000,GHKSBH,GHKSMC) values (PID0000,'ZJE000',0,'总金额 '); insert into BM_GHKSTJ_KSDY00(ID0000,BH0000,GHKSBH,GHKSMC) values (PID0000,'HCF000',0,'耗材费 '); insert into BM_GHKSTJ_KSDY00(ID0000,BH0000,GHKSBH,GHKSMC) values (PID0000,'HCFJLS',0,'耗材费减可另收 '); insert into BM_GHKSTJ_KSDY00(ID0000,BH0000,GHKSBH,GHKSMC) values (PID0000,'CYZD00',0,'出院诊断 '); insert into BM_GHKSTJ_KSDY00(ID0000,BH0000,GHKSBH,GHKSMC) values (PID0000,'CYZDMC',0,'出院诊断名称 '); insert into BM_GHKSTJ_KSDY00(ID0000,BH0000,GHKSBH,GHKSMC) values (PID0000,'SSM000',0,'手术码 '); insert into BM_GHKSTJ_KSDY00(ID0000,BH0000,GHKSBH,GHKSMC) values (PID0000,'SSMC00',0,'手术名称 '); insert into BM_GHKSTJ_KSDY00(ID0000,BH0000,GHKSBH,GHKSMC) values (PID0000,'GHF000',0,'挂号费 '); insert into BM_GHKSTJ_KSDY00(ID0000,BH0000,GHKSBH,GHKSMC) values (PID0000,'CWF000',0,'床位费 '); insert into BM_GHKSTJ_KSDY00(ID0000,BH0000,GHKSBH,GHKSMC) values (PID0000,'ZCF000',0,'诊察费 '); insert into BM_GHKSTJ_KSDY00(ID0000,BH0000,GHKSBH,GHKSMC) values (PID0000,'HLF000',0,'护理费 '); insert into BM_GHKSTJ_KSDY00(ID0000,BH0000,GHKSBH,GHKSMC) values (PID0000,'JCF000',0,'检查费 '); insert into BM_GHKSTJ_KSDY00(ID0000,BH0000,GHKSBH,GHKSMC) values (PID0000,'MRIF00',0,'MRI费 '); insert into BM_GHKSTJ_KSDY00(ID0000,BH0000,GHKSBH,GHKSMC) values (PID0000,'CTF000',0,'CT费 '); insert into BM_GHKSTJ_KSDY00(ID0000,BH0000,GHKSBH,GHKSMC) values (PID0000,'CCF000',0,'彩超费 '); insert into BM_GHKSTJ_KSDY00(ID0000,BH0000,GHKSBH,GHKSMC) values (PID0000,'ZLF000',0,'治疗费 '); insert into BM_GHKSTJ_KSDY00(ID0000,BH0000,GHKSBH,GHKSMC) values (PID0000,'SYF000',0,'输氧费 '); insert into BM_GHKSTJ_KSDY00(ID0000,BH0000,GHKSBH,GHKSMC) values (PID0000,'SXF000',0,'输血费 '); insert into BM_GHKSTJ_KSDY00(ID0000,BH0000,GHKSBH,GHKSMC) values (PID0000,'SSF000',0,'手术费 '); insert into BM_GHKSTJ_KSDY00(ID0000,BH0000,GHKSBH,GHKSMC) values (PID0000,'MZF000',0,'麻醉费 '); insert into BM_GHKSTJ_KSDY00(ID0000,BH0000,GHKSBH,GHKSMC) values (PID0000,'MZXGXM',0,'麻醉相关项目费 '); insert into BM_GHKSTJ_KSDY00(ID0000,BH0000,GHKSBH,GHKSMC) values (PID0000,'HYF000',0,'化验费 '); insert into BM_GHKSTJ_KSDY00(ID0000,BH0000,GHKSBH,GHKSMC) values (PID0000,'QTYLF0',0,'其他医疗费 '); insert into BM_GHKSTJ_KSDY00(ID0000,BH0000,GHKSBH,GHKSMC) values (PID0000,'XYF000',0,'西药费 '); insert into BM_GHKSTJ_KSDY00(ID0000,BH0000,GHKSBH,GHKSMC) values (PID0000,'ZCY000',0,'中成药 '); insert into BM_GHKSTJ_KSDY00(ID0000,BH0000,GHKSBH,GHKSMC) values (PID0000,'CYF000',0,'中草药 '); insert into BM_GHKSTJ_KSDY00(ID0000,BH0000,GHKSBH,GHKSMC) values (PID0000,'QT0000',0,'其他 '); insert into BM_GHKSTJ_KSDY00(ID0000,BH0000,GHKSBH,GHKSMC) values (PID0000,'JFCF00',0,'救护车费 '); insert into BM_GHKSTJ_KSDY00(ID0000,BH0000,GHKSBH,GHKSMC) values (PID0000,'WSCLF0',0,'卫生材料费 '); insert into BM_GHKSTJ_KSDY00(ID0000,BH0000,GHKSBH,GHKSMC) values (PID0000,'SJCYYF',0,'出院月份 '); insert into BM_GHKSTJ_KSDY00(ID0000,BH0000,GHKSBH,GHKSMC) values (PID0000,'YEFY00',0,'婴儿费用 '); update BM_GHKSTJ_KSDY00 set GHKSMC=trim(GHKSMC) where ID0000=PID0000; exception when no_data_found then raise_application_error(-20001,substrb('数据没有找到!*'||sqlerrm,1,120)); rollback; when Ecustom then raise_application_error(-20010,substrb(ls_YHMSG0||'!*',1,240)); rollback; when others then RAISE_APPLICATION_ERROR(-20204, ls_YHMSG0||trim(substrb('SP_ZY_CYDBZTJ发生意外错误!*返回信息:'|| '调用过程: SP_ZY_CYDBZTJ失败'||SQLERRM,1,200))); rollback; end; /