create or replace function SF_YF_ZYCZLYXX ( PCKDH00 in varchar2, --出库单号 PYTPE00 in number --0:返回领用人姓名; 1:返回领用时间 ) return varchar2 is vRETURN varchar2(100); VCOUNT0 number; VBRXM00 YF_YZYPSQ.BRXM00%type; VLYR000 YF_YPCKD0.LYR000%type; -- modification history -- Person Date Comments -- linshu 2022.11.02 create: 显示住院重制领药信息; for YF9-20221020-001 -- linminghan 2023.07.14 拓展vRETURN字段大小(20->100); for YF9-20230704-001 -- linshu 2023.10.09 时间格式有YYYYMMDD HH24:MI:SS改为HH24:MI:SS YYYYMMDD; for YF9-20231007-002 -- --------- ---------- -------------------------------------------------- begin select count(1) into VCOUNT0 from YF_YZYPSQ A where A.CKDH00 = PCKDH00 and A.YZXZ00 = '3'; if VCOUNT0 > 0 then if PYTPE00 = 0 then select decode(A.lyrq00,'20991231','', '患者:'||BRXM00) into VBRXM00 from YF_YZYPSQ A where A.CKDH00 = PCKDH00 and A.YZXZ00 = '3' and rownum = 1; vRETURN := VBRXM00; else -- select max(decode(A.QRRQ00,'20991231','',A.QRSJ00||' '||A.QRRQ00)) into vRETURN from YF_YPCKD0 A where A.CKDH00 = PCKDH00; select max(decode(A.lyrq00,'20991231','',A.lysj00||' '||A.lyrq00)) into vRETURN from yf_yzypsq A where A.CKDH00 = PCKDH00; end if; else select nvl(A.LYR000,-1) into VLYR000 from YF_YPCKD0 A where A.CKDH00 = PCKDH00; if PYTPE00 = 0 then select max(A.ZWXM00||'/'||A.XKH000) into vRETURN from BM_YGBM00 A where A.YGBH00 = VLYR000; else -- select max(decode(A.LYQRRQ,'20991231','',A.LYQRSJ||' '||A.LYQRRQ)) into vRETURN from YF_YPCKD0 A where A.CKDH00 = PCKDH00; select max(decode(A.lyrq00,'20991231','',A.lysj00||' '||A.lyrq00)) into vRETURN from yf_yzypsq A where A.CKDH00 = PCKDH00; end if; end if; return vRETURN; end;