create or replace function SF_SF_LXBR00( ls_BRID00 number --病人唯一号 ) return varchar2 is ls_LXBR00 char(1); ls_FBBH00 IC_YBBRLB.FBBH00%TYPE; --费别编号 ls_YBZXLB IC_YBBRLB.YBZXLB%TYPE; --医保中心类别 ls_YBBRLB IC_YBBRLB.YBZXLB%TYPE; --医保病人类别 ls_TYDWMC BM_BRXXB0.TYDWMC%TYPE; --单位名称 ls_BRZTQK BM_BRXXB0.BRZTQK%TYPE; --病人职退情况 -- MODIFICATION HISTORY -- Person Date Comments -- yangy 2009.05.15 离休病人还可以根据病人职退情况来确定 begin --医保离休标志,'1'说明是医保离休病人,'0'非此类病人 select a.TYDWMC,b.YBZXLB,a.FBBH00,a.YBBRLB,c.YXQFGH, a.BRZTQK into ls_TYDWMC,ls_YBZXLB,ls_FBBH00,ls_YBBRLB,ls_LXBR00, ls_BRZTQK FROM BM_BRXXB0 a,IC_YBBRLB b,BM_YBBRLB c where a.BRID00=ls_BRID00 and a.FBBH00=b.FBBH00 and a.YBLB00=b.YBLB00 and c.YBZXLB=b.YBZXLB and c.YBBRLB=a.YBBRLB and c.FBBH00=a.FBBH00; if ls_LXBR00 is null then ls_BRZTQK:=replace(ls_BRZTQK,';',''); ls_BRZTQK:=replace(ls_BRZTQK,'null',''); select decode(count(*),0,'0','1') into ls_LXBR00 from BM_LXBRDW where FBBH00=ls_FBBH00 and YBZXLB=ls_YBZXLB and BRZTQK=ls_BRZTQK; end if; return ls_LXBR00; end;