CREATE OR REPLACE PROCEDURE SP_BQ_PTFYTF ( PDJH000 IN NUMBER, --费用单据流水号 PMXID00 IN NUMBER, --费用明细ID PKDYS00 IN NUMBER, --开单医生编号-操作员 PKDYSXM IN VARCHAR2, --开单医生姓名-操作人 PKDKSBH IN NUMBER, --开单科室编号,其实是病区号-操作科室 POPTYPE IN NUMBER --操作类型1:申请退费,0:撤消申请 ) IS V_ISZJTF XT_XTCS00.VALUE0%TYPE; --是否直接退费 V_BCDJH0 ZY_BRFY00.DJH000%TYPE; --单据号 LD_ZLXMID YJ_YW0000.ZLXMID%TYPE; LD_COUNTER NUMBER(8); Ecustom EXCEPTION; LD_BRID00 YJ_YW0000.BRID00%TYPE; LD_ZYID00 YJ_YW0000.ZYGHID%TYPE; LS_XM0000 YJ_YW0000.BRXM00%TYPE; LD_ZYH000 YJ_YW0000.ZYHGHH%TYPE; --住院号 LD_HJJE00 YJ_YW0000.ZJE000%TYPE; --合计金额,其金额是提供给医保中心使用的 LD_YJDJH0 YJ_YW0000.YJDJH0%TYPE;--医技单据流水号 LD_OLDDJH YJ_YW0000.YJDJH0%TYPE; LS_CS0000 CHAR(168); LD_KDYS00 YJ_YW0000.KDKSBH%TYPE;--开单医生 LD_KDKSBH YJ_YW0000.KDKSBH%TYPE;--开单科室 LD_ZXKS00 YJ_YW0000.YJKSBH%TYPE;--医技科室编号 LD_SFDJH0 YJ_YW0000.SFDJH0%TYPE; ld_yjdjhF yj_yw0000.yjdjh0%type; V_ZXYS00 YJ_YW0000.KDYS00%TYPE; --执行医生 V_YSKS00 YJ_YW0000.YSSZKS%TYPE; --医生所在科室 V_KDBQ00 YJ_YW0000.KDBQ00%TYPE; --开单病区 V_YJKSBH YJ_YW0000.YJKSBH%TYPE; --执行科室 V_LBBH00 ZY_BRXXB0.LBBH00%TYPE; --类别编号 V_BRID00 ZY_BRXXB0.BRID00%TYPE; --病人id V_XM0000 ZY_BRXXB0.XM0000%TYPE; --病人姓名 V_FBBH00 ZY_BRXXb0.FBBH00%TYPE; --费别编号 V_CZYXM0 BM_YGBM00.ZWXM00%TYPE; --操作员姓名 LD_JZDH00 ZY_BRFY00.JZDH00%TYPE; --结帐单号 LD_YEXM00 ZY_BRFY00.YEXM00%TYPE; --婴儿姓名 LD_ZXR000 YJ_YW0000.ZXR000%TYPE; --LS_SFYKBZ CHAR; --LS_FKSSSF XT_XTCS00.VALUE0%TYPE; VSYSDATE DATE; Verrmsg varchar2(255); --错误提示变量 V_XMCXSQ XT_XTCS00.VALUE0%TYPE; --结算过的项目发票未回收不允许进行项目冲消或退费申请 V_JZRQ00 CHAR(8); --记账日期 V_YBCXJZRQ XT_XTCS00.VALUE0%TYPE; --医保限制冲销日期(默认为20010101) V_YBKH00 BM_BRXXB0.YBKH00%TYPE; --医保卡号 V_YBID00 BM_BRXXB0.YBID00%TYPE; --医保ID LD_yszid0 ZY_BRXXB0.YSZID0%type; LD_ZXYSZ0 ZY_BRXXB0.YSZID0%type; LS_DBZCWF ZY_BRZHXX.DBZCWF%type;--单病种超标床位费 LS_DBZHCF ZY_BRZHXX.DBZHCF%type;--单病种可另收材料 V_ZTM000 BQ_JZXM00.ZTM000%type; V_CTM000 BQ_JZXM00.CTM000%type; V_NBID00 BQ_JZXM00.NBID00%type; CURSOR FYMX IS SELECT * FROM ZY_FYMX00 WHERE MXID00=PMXID00; -- MODIFICATION HISTORY -- Person Date Comments -- qks 2008.05.15; 09.26住院发票未回收的结算记录,不允许进行项目冲消或退费申请ZYSF-20080506-001;增加参数BQ_JSFYSQTFFPHSCZ控制 YJ-20080926-002 -- zhangwz 2011.06.17 相关业务表增加YEXM00数据的插入. -- liuj 2012.01.16 增加参数ZY_YBCXJZRQ处理限制不允许冲销某个时间段之前的费用 by BQ-20120113-001 -- liuj 2014.01.23 包床记录(zy_fymx00.xmmc00含"(包)"字样),冲销时候将正的记录中的“(包)”冲销 for BQ-20140116-004 -- dsm 2014.05.09 相关业务表写入YSZID0 for BQ-20140509-001 -- zhangyc 2017.03.23 增加执行过程 SP_ZY_UPDATE_DBZFY0 by ZYSF-20170324-002 -- dsm 2018.05.15 退费时YJ_YWJJ00.CXLB00写入1 for BQ-20180507-001 -- zhuyr 2019.01.24 增加判断,如果冲销的费用已经发送过日清单,就不让冲销 by ZYSF-20190122-003 -- dsm 2020.09.24 增加ZXYSZ0 for BQ-20200916-001 -- dsm 2021.02.02 控制按费用明细冲销的不能重复冲销 for SSMZ-20210118-001 -- dsm 2021.12.15 zy_fymx00.HJJE00的取值精度为四舍五入小数点后两位 for BQ-20211201-002 -- dsm 2022.01.25 ZY_FYMX00.OMXID0写入 for BQ-20211202-001 -- dsm 2022.09.01 增加调用SP_BQ_CREATEKDSJ for BQ-20220901-002 -- dsm 2023.02.22 增加调用SF_BQ_PDCFTF for BQ-20230222-002 BEGIN VSYSDATE:=SYSDATE; LS_CS0000:='SP_BQ_PTFYTF('||PDJH000||','||PMXID00||','||PKDYS00||','''||PKDYSXM||''','||PKDKSBH||','||poptype||')'; --SELECT COUNT(*) INTO LD_COUNTER FROM BM_ZLZD00 WHERE ZLXMJC='病区普通费用退费'; --IF LD_COUNTER<1 THEN --Verrmsg:='找不到诊疗项目:病区普通费用退费'; --RAISE Ecustom; --ELSE --SELECT ZLXMID INTO LD_ZLXMID FROM BM_ZLZD00 WHERE ZLXMJC='病区普通费用退费' AND ROWNUM=1; --END IF; SELECT ZWXM00 INTO V_CZYXM0 FROM BM_YGBM00 WHERE YGBH00=PKDYS00; SELECT BRID00,ZYID00,ZYH000,JZDH00,YEXM00 INTO LD_BRID00,LD_ZYID00,LD_ZYH000,LD_JZDH00,LD_YEXM00 FROM ZY_BRFY00 WHERE DJH000=PDJH000; SELECT MAX(ZYID00) INTO LD_COUNTER FROM ZY_BRXXB0 WHERE ZYH000=LD_ZYH000 and brzt00<>'9'; IF LD_ZYID00<>LD_COUNTER THEN Verrmsg:='不能冲销病人上次住院的费用'; RAISE Ecustom; END IF; Select count(*) into LD_COUNTER from zy_brxxb0 where zyid00=LD_ZYID00 and Substr(brzt00,1,1) in ('1','2','3'); if LD_COUNTER=0 then Verrmsg:='非在院病人,不能提出退药申请!'; raise Ecustom; end if; --医保限制冲销日期(默认为20010101) Select nvl(max(trim(Value0)),'20010101') Into V_YBCXJZRQ From XT_XTCS00 Where Name00='ZY_YBCXJZRQ'; --ZY_YBCXJZRQ值根据不同的YBZXLB获取不同的 YBCXJZRQ begin select SF_ZY_GETXTCS(c.YBZXLB,V_YBCXJZRQ) into V_YBCXJZRQ from ZY_BRXXB0 a,BM_BRXXB0 b,IC_YBBRLB c where a.ZYID00=LD_ZYID00 and a.BRID00=b.BRID00 and b.FBBH00=3 and b.FBBH00=c.FBBH00 and b.YBLB00=c.YBLB00; exception when others then V_YBCXJZRQ:='20010101'; end; --开单科室 SELECT LBBH00,BRID00,XM0000,FBBH00 INTO V_LBBH00,V_BRID00,V_XM0000,V_FBBH00 FROM ZY_BRXXB0 WHERE ZYID00=LD_ZYID00; --取病人费别 SELECT YBKH00,YBID00 INTO V_YBKH00, V_YBID00 FROM BM_BRXXB0 WHERE BRID00= V_BRID00; --总金额 SELECT HJJE00,ZXKS00,KDKS00,KDYS00,ZXYS00,CZRQ00,YSZID0,ZXYSZ0 INTO LD_HJJE00,LD_ZXKS00,LD_KDKSBH,LD_KDYS00,LD_ZXR000,V_JZRQ00,LD_YSZID0,LD_ZXYSZ0 FROM ZY_FYMX00 WHERE MXID00=PMXID00; --除了新农合病人和异地医保病人,其他医保病人都要限制不能冲销某个时间段之前的费用 if (V_FBBH00=3) and (V_YBCXJZRQ<>'20010101') and (V_JZRQ00<>'20991231') then if (V_YBCXJZRQ >= V_JZRQ00) and (V_YBKH00 <> V_YBID00) and (instr(V_YBKH00,'@') <= 0) then Verrmsg:='不能冲销'||substr(V_YBCXJZRQ,1,4)||'年'||substr(V_YBCXJZRQ,5,2)||'月'||substr(V_YBCXJZRQ,7,2)||'日之前的费用'; raise Ecustom; end if; end if; --******************************** if poptype=1 then --申请退费 Begin Select UPPER(TRIM(VALUE0)) Into V_XMCXSQ From XT_XTCS00 Where NAME00 = 'BQ_JSFYSQTFFPHSCZ'; --YJ_XMCXSQ_JS Exception When others then V_XMCXSQ := 'N'; End; --费用表中是否有已经退费 SELECT COUNT(*) INTO LD_COUNTER FROM ZY_FYMX00 WHERE DJH000=PDJH000 AND MXID00=PMXID00 AND CXBZ00 IN ('Z','%'); IF LD_COUNTER=0 THEN --没有可退费的记录 SELECT COUNT(*) INTO LD_COUNTER FROM ZY_FYMX00 WHERE DJH000=PDJH000 AND MXID00=PMXID00 ; IF LD_COUNTER=0 THEN Verrmsg:='无此收费项目'; RAISE Ecustom; ELSE Verrmsg:='此收费项目已经退费'; RAISE Ecustom; END IF; END IF; --存在已发送日清单的费用,则不允许冲销 select COUNT(*) into LD_COUNTER from ZY_BRFY00 where DJH000=PDJH000 and YBFSDH <> 0; if LD_COUNTER > 0 then Verrmsg:='处方(项目)已发送日清单,不允许退费,请冲销日清单之后再试!'; raise Ecustom; end if; --医技业务表中是否有已经退费的记录 SELECT COUNT(*) INTO LD_COUNTER FROM YJ_YW0000 WHERE SFDJH0=PDJH000; IF LD_COUNTER>0 THEN --有已经退费的记录 --YJ_YWJJ00中有此收费项目,说明已经退费 SELECT COUNT(*) INTO LD_COUNTER FROM YJ_YWJJ00 WHERE YJDJH0 IN (SELECT YJDJH0 FROM YJ_YW0000 W WHERE W.SFDJH0=PDJH000) AND MXID00 =PMXID00; IF LD_COUNTER>0 THEN Verrmsg:='此收费项目已经申请退费'; RAISE Ecustom; END IF; END IF; /*IF V_XMCXSQ='Y' THEN IF LD_JZDH00<>0 THEN Verrmsg:='该费用已结算,系统不允许退费或冲销,请与中心联系!'; RAISE Ecustom; END IF; END IF;*/ IF (V_XMCXSQ='Y') and (LD_JZDH00<>0) THEN SELECT COUNT(1) INTO LD_COUNTER FROM ZY_JZB000 WHERE JZDH00=LD_JZDH00 AND FPHSBZ='0'; IF LD_COUNTER>0 THEN Verrmsg:='系统不允许退费或冲销,该费用已结算,而且发票未回收,请先把发票交还到收费处!*'; RAISE Ecustom; END IF; END IF; --获取是否直接退费参数 SELECT VALUE0 INTO V_ISZJTF FROM XT_XTCS00 WHERE NAME00='BQ_PTTFSFZJTF'; --新的YJDJH0 SELECT SQ_YJ_YW0000_YJDJH0.NEXTVAL INTO LD_YJDJH0 FROM DUAL WHERE ROWNUM=1; LD_OLDDJH:=LD_YJDJH0; --构造一条虚拟的医技项目,使用SFXMID,SFXMJC INSERT INTO YJ_YW0000 (yjdjh0, brid00, zyghid , zlxmjc, kdys00, kdksbh, kdrq00, kdsj00, lrxm00, jzbz00, fbzxbz, xmzt00, mzzybz, cxdjh0, bz0000, zlxmid, sl0000, ZXSL00, zyhghh, zje000,SFDJH0,KDBQ00,yjksbh,YEXM00,YSZID0,ZXYSZ0) VALUES (LD_YJDJH0,LD_BRID00,LD_ZYID00,'病区普通费用退费',LD_KDYS00, LD_KDKSBH,TO_CHAR(VSYSDATE,'YYYYMMDD'),TO_CHAR(VSYSDATE,'HH24:MI:SS'), PKDYSXM,'N','N', '2','1',NULL,'病区退费', 0,1,0, LD_ZYH000,LD_HJJE00,PDJH000,PKDKSBH,LD_ZXKS00,LD_YEXM00,LD_YSZID0,LD_ZXYSZ0); FOR MX IN FYMX LOOP select count(*) into LD_COUNTER from YJ_YW0000 a, YJ_YWJJ00 b where b.MXID00=MX.MXID00 and a.ZYGHID=LD_ZYID00 and a.YJDJH0=b.YJDJH0 and b.SFXMID=MX.XMBH00 and b.SL0000<0; if LD_COUNTER>0 then Verrmsg:='MXID00='||MX.MXID00||'已经退费过,或者已经退费申请了,不能再退费!*'; RAISE Ecustom; end if; if MX.FLAG00='2' then begin select ZTM000,CTM000,NBID00 into V_ZTM000,V_CTM000,V_NBID00 from BQ_JZXM00 where ID0000=MX.DJID00; exception when others then V_ZTM000:=''; V_CTM000:=''; end; end if; INSERT INTO YJ_YWJJ00 (ID0000,YJDJH0,YJFZH0,SFXMID,JJJE00, GFJE00,ZFJE00,QZFJE0,JZJE00, CXBZ00,SL0000,SFCS00,MXID00,ZFBL00,CXLB00,ZTM000,CTM000,GZJLH0) VALUES (SQ_YJ_YWJJ00_ID0000.NEXTVAL,LD_YJDJH0,NULL,MX.XMBH00,MX.XMDJ00, MX.GFJE00,MX.ZFJE00,MX.QZFJE0,MX.JZJE00, '+',MX.XMSL00,1,PMXID00,MX.ZFBL00,'1',V_ZTM000,V_CTM000,V_NBID00); END LOOP; --新的YJDJH0 SELECT SQ_YJ_YW0000_YJDJH0.NEXTVAL INTO LD_YJDJH0 FROM DUAL WHERE ROWNUM=1; --冲销YJ_YW0000 INSERT INTO YJ_YW0000 (yjdjh0, brid00, zyghid , zlxmjc, kdys00, kdksbh, kdrq00, kdsj00, lrxm00, jzbz00, fbzxbz, xmzt00, mzzybz, cxdjh0, bz0000, zlxmid, sl0000,ZXSL00, zyhghh, zje000,KDBQ00,YJKSBH,YEXM00,YSZID0,ZXYSZ0) VALUES (LD_YJDJH0,LD_BRID00,LD_ZYID00,'病区普通费用退费',LD_KDYS00, LD_KDKSBH,TO_CHAR(VSYSDATE,'YYYYMMDD'),TO_CHAR(VSYSDATE,'HH24:MI:SS'), PKDYSXM,'N','N','1','1',LD_OLDDJH,'病区退费',0,-1,0, LD_ZYH000,-LD_HJJE00,PKDKSBH,LD_ZXKS00,LD_YEXM00,LD_YSZID0,LD_ZXYSZ0); --直接退费 --IF V_ISZJTF='1' THEN --END IF; FOR MX IN FYMX LOOP select count(*) into LD_COUNTER from YJ_YW0000 a, YJ_YWJJ00 b where b.MXID00=MX.MXID00 and a.ZYGHID=LD_ZYID00 and a.YJDJH0=b.YJDJH0 and b.SFXMID=MX.XMBH00 and b.SL0000<0; if LD_COUNTER>0 then Verrmsg:='MXID00='||MX.MXID00||'已经退费过,或者已经退费申请了,不能再退费!*'; RAISE Ecustom; end if; INSERT INTO YJ_YWJJ00 (ID0000,YJDJH0,YJFZH0,SFXMID,JJJE00, GFJE00,ZFJE00,QZFJE0,JZJE00, CXBZ00,SL0000,SFCS00,MXID00,ZFBL00,CXLB00,ZTM000,CTM000,GZJLH0) VALUES (SQ_YJ_YWJJ00_ID0000.NEXTVAL,LD_YJDJH0,NULL,MX.XMBH00,MX.XMDJ00, -MX.GFJE00,-MX.ZFJE00,-MX.QZFJE0,-MX.JZJE00, '-',-MX.XMSL00,1,PMXID00,MX.ZFBL00,'1',V_ZTM000,V_CTM000,V_NBID00); if MX.FLAG00='1' then update YJ_YWJJ00 set CXSL00=MX.XMSL00,CXBZ00='+' where ID0000=MX.DJID00 ; end if; --直接退费 --IF V_ISZJTF='1' THEN --END IF; END LOOP; --直接退费 IF V_ISZJTF='1' and LD_JZDH00>0 then commit; Verrmsg:='要退的费用已经结算,请病人持住院发票到收费处进行重新结算'; Raise Ecustom; elsif V_ISZJTF='1'and LD_JZDH00=0 THEN Select ZXR000, YSSZKS, KDBQ00, YJKSBH INTO V_ZXYS00, V_YSKS00, V_KDBQ00, V_YJKSBH From YJ_YW0000 Where YJDJH0=LD_YJDJH0; Select SQ_ZY_BRJFB0_DJH000.NEXTVAL into V_BCDJH0 FROM DUAL WHERE ROWNUM=1; --先插入明细表 INSERT INTO ZY_FYMX00 (MXID00,DJH000,XMBH00,XMMC00,XMGG00,XMDW00,XMDJ00,XMSL00, HJJE00,ZFJE00,GFJE00,JZJE00,CZRQ00,CZSJ00,ZXRQ00,ZXSJ00,KDKS00,KDYS00, ZXKS00,ZXYS00,SFYDJ0,YSKS00,KDBQ00,ZFBL00,CXBZ00,YEXM00,YSZID0,ZXYSZ0,OMXID0,GZJLH0) SELECT SQ_ZY_FYMX00_MXID00.nextval,V_BCDJH0,A.SFXMID,XMMC00,'次',DECODE(B.DW0000,NULL,'次',B.DW0000), NVL(A.JJJE00,0),A.SFCS00*A.SL0000,round(NVL(A.JJJE00*A.SFCS00*A.SL0000,0),2),NVL(A.ZFJE00,0), NVL(A.GFJE00,0),NVL(A.JZJE00,0),to_char(sysdate,'YYYYMMDD'), to_char(sysdate,'HH24:MI:SS'), to_char(sysdate,'YYYYMMDD'),to_char(sysdate,'HH24:MI:SS'),NVL(LD_KDKSBH,0),--开单科室 NVL(LD_KDYS00,0),--开单医生 NVL(V_YJKSBH, 0), --执行科室 NVL(V_ZXYS00, 0), --执行医生 '0', NVL(V_YSKS00, 0), --医生科室 NVL(V_KDBQ00, 0), --开单病区 A.ZFBL00, '-', --冲销标志 LD_YEXM00 , --婴儿姓名 LD_YSZID0, LD_ZXYSZ0, A.MXID00, A.GZJLH0 From YJ_YWJJ00 A ,BM_YYSFXM B where A.SFXMID = B.SFXMID and A.YJDJH0 = LD_YJDJH0; SP_ZY_UPDATE_DBZFY0(LD_ZYID00,V_BCDJH0,'N',LS_DBZCWF,LS_DBZHCF);--修改超标床位费和除外耗材费 by ZYSF-20170324-002 SP_BQ_CREATEKDSJ(V_BCDJH0,LD_YJDJH0,PKDYS00,PKDKSBH,4); insert into ZY_BRFY00(DJH000,ZYID00,ZYH000,JFLBID,BRID00,XM0000,BRFB00,HJJE00, ZFJE00,QZFJE0,GFJE00,JZJE00,BRYE00,CZRQ00,CZSJ00,CZY000,CZYXM0, SFYKBZ,CZYKS0,CXDJH0,YEXM00,DBZCWF,DBZHCF,ZXYSZ0) SELECT V_BCDJH0,LD_ZYID00,LD_ZYH000,V_LBBH00,V_BRID00,V_XM0000,V_FBBH00,SUM(A.HJJE00), SUM(A.ZFJE00),SUM(A.QZFJE0),SUM(A.GFJE00),SUM(A.JZJE00), 0, TO_CHAR(VSYSDATE, 'YYYYMMDD'), --操作日期 TO_CHAR(VSYSDATE, 'HH24:MI:SS'), --操作时间 PKDYS00, --操作员 PKDYSXM, --操作人姓名 '0', --是否预扣标志 PKDKSBH, --操作员科室 PDJH000, --冲销单据号 LD_YEXM00, --婴儿姓名 sum(nvl(DBZCWF,0)),sum(nvl(DBZHCF,0)) ,LD_ZXYSZ0 FROM ZY_FYMX00 A WHERE DJH000=V_BCDJH0; --修改医技表中的相关信息 UPDATE YJ_YW0000 SET ZXR000 = PKDYS00 , --执行医生 --YJKSBH = PKDKSBH , --执行科室 XMZT00 = '2', --已收费 SFDJH0 = V_BCDJH0 WHERE YJDJH0 = LD_YJDJH0 and XMZT00 <> '2'; --修改原费用明细 CXBZ00 UPDATE ZY_FYMX00 Set CXBZ00='+',XMMC00=replace(XMMC00,'(包)','') Where MXID00=PMXID00; --修改CXDJH0 --UPDATE ZY_BRFY00 Set CXDJH0=PDJH000 Where DJH000=V_BCDJH0; --判断是否存在重复退费 LD_COUNTER:=SF_BQ_PDCFTF(V_BCDJH0,LD_ZYID00); if LD_COUNTER>0 then rollback; Verrmsg:='存在重复退费'; Raise Ecustom; end if; END IF; --**************** else --撤消申请 SELECT COUNT(*) INTO LD_COUNTER FROM YJ_YW0000 WHERE SFDJH0=PDJH000; IF LD_COUNTER>0 THEN --有已经退费的记录 --YJ_YWJJ00中有此收费项目,说明已经退费 SELECT COUNT(*) INTO LD_COUNTER FROM YJ_YWJJ00 WHERE YJDJH0 IN (SELECT YJDJH0 FROM YJ_YW0000 W WHERE W.SFDJH0=PDJH000) AND MXID00 =PMXID00; IF LD_COUNTER>0 THEN SELECT YJDJH0 INTO LD_YJDJH0 FROM YJ_YWJJ00 WHERE YJDJH0 IN (SELECT YJDJH0 FROM YJ_YW0000 W WHERE W.SFDJH0=PDJH000) AND MXID00=PMXID00; SELECT SFDJH0,yjdjh0 INTO LD_SFDJH0,ld_yjdjhF FROM YJ_YW0000 WHERE CXDJH0=LD_YJDJH0; IF (LD_SFDJH0 <>0 ) AND (LD_SFDJH0 IS NOT NULL) THEN Verrmsg:='此收费项目已经退费,不能撤消申请'; RAISE Ecustom; END IF; ELSE--没有申请退费,不能撤消 Verrmsg:='此收费项目没有申请退费,不能撤消申请'; RAISE Ecustom; END IF; --DELETE FROM YJ_YWJJ00 --WHERE YJDJH0 IN (SELECT YJDJH0 FROM YJ_YW0000 -- WHERE CXDJH0=LD_YJDJH0 OR YJDJH0=LD_YJDJH0); --DELETE FROM YJ_YWMX00 --WHERE YJDJH0 IN (SELECT YJDJH0 FROM YJ_YW0000 -- WHERE CXDJH0=LD_YJDJH0 OR YJDJH0=LD_YJDJH0); --DELETE FROM YJ_YW0000 WHERE CXDJH0=LD_YJDJH0 OR YJDJH0=LD_YJDJH0; DELETE FROM YJ_YW0000 WHERE YJDJH0 IN(LD_YJDJH0,LD_YJDJHF); DELETE FROM YJ_YWJJ00 WHERE YJDJH0 IN(LD_YJDJH0,LD_YJDJHF); DELETE FROM YJ_YWMX00 WHERE YJDJH0 IN(LD_YJDJH0,LD_YJDJHF); END IF; end if; COMMIT; EXCEPTION WHEN Ecustom THEN RAISE_APPLICATION_ERROR(-20006,Verrmsg||'!*'||LS_CS0000); WHEN NO_DATA_FOUND THEN RAISE_APPLICATION_ERROR(-20010, '数据没有找到!*'||LS_CS0000); WHEN OTHERS THEN RAISE_APPLICATION_ERROR(-20020, substrb(NVL(SQLERRM, '原因不明出错')||'!*'||LS_CS0000,1,220)); ROLLBACK; END; -- Procedure SP_BQ_PTFYTF