CREATE OR REPLACE FUNCTION SF_YF_CLKCXZFY(sYFBMBH in varchar2,sBQBMBH in varchar2,sZYID00 in varchar2,sKFZJBZ in varchar2) return varchar2 is ls_TSXX00 varchar(800); cnt number(5); ls_SYJLSL YF_RKZSM0.SYJLSL%type; -- MODIFICATION HISTORY -- Person Date Comments -- huangjy 2025.06.16 created for YF-20250527-001 begin ls_TSXX00:=' '; --拆零库存是否充足 for c_ts in( select a.YPNM00,a.YPMC00,a.YFBMBH,sum(a.YPZSL0*a.ZHL000) ZSMSL0 from YF_YZYPSQ a,BM_YD0000 d where a.YFBMBH=sYFBMBH and a.BQBMBH=sBQBMBH and ((a.ZYID00=sZYID00) or (sZYID00='-1')) and a.HZBZ00=sKFZJBZ and a.FYBZ00='1' and a.CXBZ00 in ('Z') and a.YPNM00=d.YPNM00 and d.ZSCLBZ in ('2','3') and d.pzbsm0 is not null group by a.YPNM00,a.YPMC00,a.YFBMBH ) loop select nvl(sum(a.SYJLSL),0) into ls_SYJLSL from YF_RKZSM0 a where a.YFBMBH=c_ts.YFBMBH and a.YPNM00=c_ts.YPNM00; if c_ts.ZSMSL0-ls_SYJLSL>0 then if ls_TSXX00=' ' then ls_TSXX00:=c_ts.YPMC00; else ls_TSXX00:=ls_TSXX00||','||c_ts.YPMC00; end if; end if; end loop; if ls_TSXX00<>' ' then ls_TSXX00:='拆零药品['||ls_TSXX00||']库存不足!'; end if; return substr(trim(ls_TSXX00),1,800); end;