在package中定义存储过程

create or replace package PEIS_ReportPictureManage istype ref_cur is ref cursor;procedure YW_QueryPic(paraTJH000 in varchar2,paraBMBH00 in varchar2,cur_Pic out ref_cur,cur_SFXMJG out ref_cur);procedure YW_QueryReportPic(paraTJH000 in varchar2,paraBMBH00 in varchar2,paraSFDY00 in varchar2,paraSFDL00 in varchar2,cur_Pic out ref_cur,cur_SFXMJG out ref_cur);function YW_JudgeBBWCJ(paraTJH000 in number,paraBMBH00 in number)return number;procedure QueryPictureDept(paraTJH000 in number,paraBMBH00 in varchar2,cur_PictureDept out ref_cur);procedure queryJCXMTX(paraTJH000 in number,cur_BMBH out ref_cur,cur_CSTP out ref_cur);procedure SavePicToDB(paraTJH000 in number,paraBMBH00 in number,paraKSLX00 in varchar2,paraSFCS00 in char,paraTPBT00 in varchar2,paraTPFX00 in varchar2,paraTP0000 in blob);procedure queryPicForFrx(paraTJH000 in number,paraBMBH00 in number,paraOPFLAG in varchar2,cur_Image out ref_cur,cur_CSXM00 out ref_cur,cur_CSJCXM out ref_cur);--查询检查项目图像procedure queryExamItemPicture(paraTJH000 in number,paraJCKSID in number,cur_ExamItemPicture out ref_cur,cur_ExamArea out ref_cur);--检查项目图像操作function examItemPictureOperate(paraOPFLAG in number,paraTJH000 in number,paraBMBH00 in number,paraKSLX00 in varchar2,paraJCBW00 in varchar2,paraBDY000 in varchar2,paraTPBT00 in varchar2,paraCZY000 in number)return varchar2;procedure queryPicFromOtherSysTable(paraTJH000 in number,paraDSFBM0 in varchar2, --此处代表 第三方表名paraTJLM00 in varchar2,  --此处代表 第三方表中的搜索条件列paraTPLM00 in varchar2,cur_Pic    out ref_cur);--复制科室图片procedure CopyDeptPicture(paraTJH000 in number,paraTOTJH0 in number,paraYKSID0 in number,paraTOKSID in number,paraTPBT00 in varchar2,paraTSXX00 out varchar2,cur_ExamItemPicture out ref_cur,cur_PictureServer out ref_cur);procedure QueryPersonDeptInfo(paraTJH000 in number,paraCZY000 in number,cur_PersonDeptInfo out ref_cur);--删除接口图片function DeleteInterfacePicture(paraTJH000 in number,paraBMBH00 in number,paraTPLJ00 in varchar2)return varchar2;end PEIS_ReportPictureManage;

在package body中写实际的存储过程

create or replace package body PEIS_ReportPictureManage is--此过程为人民医院报告打印接口过程,慎改procedure YW_QueryPic(paraTJH000 in varchar2,paraBMBH00 in varchar2,cur_Pic out ref_cur,cur_SFXMJG out ref_cur)isbeginopen cur_Pic forselect 0 NX,A.TJH000,B.YXLX00 KSLX00,A.BMBH00,min(SFYWID) SFYWID,min(JCID00) JCID00,B.JKMS00,B.DSFPZ0,B.FTPPZ0,B.FTPYHM,B.FTPMM0,B.MS0000,B.MBFS00,C.TJDM00,B.YXMBM0,B.JKZJBM,B.FTPDKH,B.TPFX00,B.FTPURL,B.FKBGMB,nvl(B.SFDGMB,'0') SFDGMB,(select BMMC00 from BM_BMBM00 where BMBH00 = A.BMBH00) BMMC00from SY_PE_YWSJ_TJJCXM a, SY_PE_YWZD_YXPZB0 b, SY_PE_YWSJ_TJZ000 cwhere A.BMBH00 = B.BMBH00and A.TJH000 = C.TJH000and A.TJH000 = paraTJH000and B.SFYX00 = '1'and A.BMBH00 = nvl(paraBMBH00, A.BMBH00)and YW_JudgeBBWCJ(A.TJH000,B.BMBH00) = 1group by A.TJH000,A.BMBH00,B.YXLX00,B.JKMS00,B.DSFPZ0,B.FTPPZ0,C.TJDM00,B.MS0000,B.MBFS00,B.YXMBM0,B.FTPYHM,B.FTPMM0,B.JKZJBM,B.FTPDKH,B.FTPURL,B.TPFX00,B.FKBGMB,B.SFDGMB;open cur_SFXMJG forselect A.*, (select BMMC00 from BM_BMBM00 where BMBH00 = A.BMBH00) BMMC00 from(select distinct TJH000, TPLJ00, BMBH00, 0 TPLY00, '1' BDY000from VW_PE_SFXMJGwhere TJH000 = paraTJH000and BMBH00 = nvl(paraBMBH00, BMBH00)union allselect TJH000,  A.KSLX00||'/'||A.CTRQ00||'/'||to_char(A.TJH000)||'/'||A.TPBT00 TPXDLJ,BMBH00, 1 TPLY00, BDY000from SY_PE_YWSJ_JCXMTX Awhere TJH000 = paraTJH000and BMBH00 = nvl(paraBMBH00, BMBH00))A;end;procedure YW_QueryReportPic(paraTJH000 in varchar2,paraBMBH00 in varchar2,paraSFDY00 in varchar2,paraSFDL00 in varchar2,cur_Pic out ref_cur,cur_SFXMJG out ref_cur)isbeginopen cur_Pic forselect * from (select 0 NX,A.TJH000,B.YXLX00 KSLX00,A.BMBH00,min(SFYWID) SFYWID,min(JCID00) JCID00,B.JKMS00,B.DSFPZ0,B.FTPPZ0,B.FTPYHM,B.FTPMM0,B.MS0000,B.MBFS00,C.TJDM00,B.YXMBM0,B.JKZJBM,B.FTPDKH,B.TPFX00,B.FTPURL,B.FKBGMB,B.DYJ000,nvl(B.SFDGMB,'0') SFDGMB,(select PXXH00 from BM_BMBM00 where BMBH00 = A.BMBH00) PXXH00,(select BMMC00 from BM_BMBM00 where BMBH00 = A.BMBH00) BMMC00from SY_PE_YWSJ_TJJCXM a, SY_PE_YWZD_YXPZB0 b, SY_PE_YWSJ_TJZ000 cwhere A.BMBH00 = B.BMBH00and A.TJH000 = C.TJH000and A.TJH000 = paraTJH000and B.SFYX00 = '1'and A.BMBH00 = nvl(paraBMBH00, A.BMBH00)and ((paraSFDL00 = 0)or (paraSFDL00 = 1 and B.SFDLDY = 0)or (paraSFDL00 = 2 and B.SFDLDY = 1))and YW_JudgeBBWCJ(A.TJH000,B.BMBH00) = 1group by A.TJH000,A.BMBH00,B.YXLX00,B.JKMS00,B.DSFPZ0,B.FTPPZ0,C.TJDM00,B.MS0000,B.MBFS00,B.YXMBM0,B.FTPYHM,B.FTPMM0,B.JKZJBM,B.FTPDKH,B.FTPURL,B.TPFX00,B.FKBGMB,B.SFDGMB,B.DYJ000) order by PXXH00;open cur_SFXMJG forselect A.*, (select BMMC00 from BM_BMBM00 where BMBH00 = A.BMBH00) BMMC00 from(select distinct TJH000, TPLJ00, BMBH00, 0 TPLY00, '1' BDY000from VW_PE_SFXMJGwhere TJH000 = paraTJH000and BMBH00 = nvl(paraBMBH00, BMBH00)union allselect TJH000,  A.KSLX00||'/'||A.CTRQ00||'/'||to_char(A.TJH000)||'/'||A.TPBT00 TPXDLJ,BMBH00, 1 TPLY00, BDY000from SY_PE_YWSJ_JCXMTX Awhere TJH000 = paraTJH000and BMBH00 = nvl(paraBMBH00, BMBH00)and (nvl(paraSFDY00, '0') = '0' or (paraSFDY00 = '1' and BDY000 = '1')))A;end;function YW_JudgeBBWCJ(paraTJH000 in number,paraBMBH00 in number)return numberasvCount number;vResult number;beginvResult:= 1;if paraBMBH00 = 11 thenselect count(1) into vCount from SY_PE_YWSJ_TJZFJ0 where TJH000 = paraTJH000 and WCCJDD = '2';if vCount > 0 thenvResult:= 0;end if;end if;return vResult;end;--查询影像科室procedure QueryPictureDept(paraTJH000 in number,paraBMBH00 in varchar2,cur_PictureDept out ref_cur)isbeginopen cur_PictureDept forwith VW_PIC as(select distinct BMBH00 from(select BMBH00from VW_PE_SFXMJG where TJH000 = paraTJH000 and BMBH00 = nvl(paraBMBH00, BMBH00)union allselect BMBH00from SY_PE_YWSJ_JCXMTX A where TJH000 = paraTJH000 and BMBH00 = nvl(paraBMBH00, BMBH00) and BDY000 = '1'))select A.*, (select BMMC00 from BM_BMBM00 where BMBH00 = A.BMBH00) BMMC00,(select YXLX00 from BM_BMBM00 where BMBH00 = A.BMBH00) YXLX00 from VW_PIC A;end;procedure queryJCXMTX(paraTJH000 in number,cur_BMBH out ref_cur,cur_CSTP out ref_cur) isbeginopen cur_BMBH forselect distinct BMBH00 from VW_PE_JCXMTX awhere TJH000 = paraTJH000and BDY000 = '1'and exists (select 1 from  SY_PE_YWZD_YXPZB0 where a.bmbh00=bmbh00 and MBFS00='0');open cur_CSTP forselect * from VW_PE_JCXMTX awhere TJH000 = paraTJH000and BDY000 = '1'and exists (select 1 from  SY_PE_YWZD_YXPZB0 where a.bmbh00=bmbh00 and MBFS00='0');end;procedure queryItems(paraTJH000  in number,paraBMBH00  in number,cur_SFXMJG out ref_cur) isbeginopen cur_SFXMJG forselect * from VW_PE_SFXMJG where TJH000=paraTJH000 and BMBH00=paraBMBH00;end;procedure SavePicToDB(paraTJH000 in number,paraBMBH00 in number,paraKSLX00 in varchar2,paraSFCS00 in char,paraTPBT00 in varchar2,paraTPFX00 in varchar2,paraTP0000 in blob)isbegindelete from SY_PE_TMP_PDFReportPic where TJH000 = paraTJH000 and BMBH00 = paraBMBH00and KSLX00 = paraKSLX00 and TPBT00 = paraTPBT00;insert into SY_PE_TMP_PDFReportPic(Tjh000, Bmbh00, Kslx00, SFCS00, Tpbt00, Tp0000, Tpfx00)values(paraTJH000, paraBMBH00, paraKSLX00, paraSFCS00, paraTPBT00,paraTP0000,paraTPFX00) ;--return Tp0000 into b_lob;commit;end;procedure queryPicForFrx(paraTJH000 in number,paraBMBH00 in number,paraOPFLAG in varchar2,cur_Image out ref_cur,cur_CSXM00 out ref_cur,cur_CSJCXM out ref_cur)isbegin--图片open cur_Image forselect * from SY_PE_TMP_PDFREPORTPIC where tjh000 = paraTJH000 and (paraBMBH00 is null or BMBH00 = paraBMBH00);if paraOPFLAG = '0' then--超声项目open cur_CSXM00 forselect a.TJH000, A.XM0000, to_char(to_date(A.DJRQ00,'yyyy-mm-dd'),'yyyy-mm-dd') DJRQSJ,A.XBMC00, A.NL0000, (select ZWXM00 from BM_YGBM00 where YGBH00 = B.KDYSID) KDYSXM,A.BMBH00, A.BMMC00, A.KSXJ00, A.SHRQGG, A.YSXM00 KSYSXM, A.YSXM00, A.KSRQGG,SF_PE_GetSQXMMC(a.TJH000, a.bmbh00) SQXMMC,(select QM0000 from BM_YGBM00 where YGBH00 = A.KSYS00) QM0000from VW_PE_TJFKJC a, SY_PE_YWSJ_TJZ000 Bwhere A.TJH000 = B.TJH000and A.TJH000 = paraTJH000and a.BMBH00 = paraBMBH00;--超声检查项目open cur_CSJCXM forselect a.* from VW_PE_JCXMBG a where TJH000 = paraTJH000and a.BMBH00 = paraBMBH00 and TZCMS0 is not null order by SQXMXH,JCXMXH;end if;end;--查询检查项目图像procedure queryExamItemPicture(paraTJH000 in number,paraJCKSID in number,cur_ExamItemPicture out ref_cur,cur_ExamArea out ref_cur)isVSFSH00 number;VYYID00 SY_PE_YWSJ_TJZ000.YYID00%type;VQFYTXM XT_XTCS00.VALUE0%type;beginselect YYID00 into VYYID00 from SY_PE_YWSJ_TJZ000 where TJH000 = paraTJH000;select sf_pe_getxtcs('PE_FKXTMS', '0', VYYID00) into VQFYTXM from dual;if VQFYTXM = '1' then--是否有图项目select decode(count(1), 0, 1, 0) into VSFSH00from SY_PE_YWSJ_TJYW00 A, SY_PE_YWZD_TJSQXM B where A.SQXMID = B.SQXMIDand A.TJH000 = paraTJH000 and A.JCKSID = paraJCKSID and (nvl(BBLXID,0) <> 0);elseVSFSH00 := 0;end if;if VSFSH00 = 0 thenselect decode(count(1), 0, 0, 1) into VSFSH00from SY_PE_YWSJ_TJFKJC where TJH000 = paraTJH000 and BMBH00 = paraJCKSID and KSSH00 = '1';end if;open cur_ExamArea forselect distinct BBLXID, BBLXMC, YXLX00 from SY_PE_YWSJ_TJYW00 A, VW_PE_SQXM00 Bwhere A.TJH000 = paraTJH000 and JCKSID = paraJCKSID and A.SQXMID = B.SQXMID and SFJCXM = '1'and  BBLXMC is not null;open cur_ExamItemPicture forselect TJH000, BMBH00, JCBW00, BDY000, KSLX00, CTRQ00, TPBT00, VSFSH00 SFSH00, SFYWID, KSLX00 YXLX00from VW_PE_JCXMTX where TJH000 = paraTJH000 and BMBH00 = paraJCKSID;end;--检查项目图像操作function examItemPictureOperate(paraOPFLAG in number,paraTJH000 in number,paraBMBH00 in number,paraKSLX00 in varchar2,paraJCBW00 in varchar2,paraBDY000 in varchar2,paraTPBT00 in varchar2,paraCZY000 in number)return varchar2isVKSLX00 BM_BMBM00.KSLX00%type;VTPXDLJ SY_PE_YWSJ_JCXMTX.TPXDLJ%type;VSFYWID SY_PE_YWSJ_JCXMTX.SFYWID%type;VJCID00 SY_PE_YWSJ_JCXMTX.JCID00%type;VTPBT00 SY_PE_YWSJ_JCXMTX.TPBT00%type;VJCBW00 SY_PE_YWSJ_JCXMTX.JCBW00%type;beginif paraBMBH00 is not null and paraKSLX00 is null thenselect YXLX00 into VKSLX00 from BM_BMBM00 where BMBH00 = paraBMBH00;elseVKSLX00 := paraKSLX00;end if;VTPBT00 := upper(paraTPBT00);case paraOPFLAGwhen 0 thenselect nvl(max(SFYWID),0), nvl(max(JCID00),0) into VSFYWID, VJCID00from SY_PE_YWSJ_TJJCXM where TJH000=paraTJH000 and BMBH00=paraBMBH00;VTPXDLJ := '\'|| VKSLX00 ||'\'||to_char(sysdate, 'YYYYMMDD')||'\'||paraTJH000||'\'||VTPBT00;insert into SY_PE_YWSJ_JCXMTX(XMTXID, TJH000, SFYWID, JCID00, TPBT00, BDY000, TPXDLJ, KSLX00, CTRQ00, BMBH00)select SQ_PE_YWSJ_JCXMTX_XMTXID.NextVal, paraTJH000, VSFYWID, VJCID00, VTPBT00, '0', VTPXDLJ,VKSLX00, to_char(sysdate, 'YYYYMMDD'), paraBMBH00 from dualwhere not exists(select 1 from VW_PE_JCXMTX where TJH000 = paraTJH000and upper(TPBT00) =  VTPBT00 and KSLX00 = VKSLX00);when 1 thenif paraJCBW00 is null thenselect max(BBLXID) into VJCBW00 from SY_PE_YWSJ_TJYW00 A, VW_PE_SQXM00 B --BBLXMCwhere A.TJH000 = paraTJH000 and JCKSID = paraBMBH00 and A.SQXMID = B.SQXMIDand SFJCXM = '1' and  BBLXMC is not null;elseVJCBW00 := paraJCBW00;end if;update SY_PE_YWSJ_JCXMTX set JCBW00 = VJCBW00, BDY000 = paraBDY000where TJH000 = paraTJH000 and KSLX00 = VKSLX00 and upper(TPBT00) = VTPBT00;insert into SY_PE_YWSJ_TXDYLS(LSID00, TJH000, BMBH00, YXLX00, TPBT00, SFDY00, CZY000)select SQ_PE_YWSJ_TXDYLS_LSID00.Nextval, paraTJH000, paraBMBH00, VKSLX00, VTPBT00,paraBDY000, paraCZY000 from dual;when 2 thendelete from SY_PE_YWSJ_JCXMTX where TJH000 = paraTJH000 and KSLX00 = VKSLX00 and upper(TPBT00) = VTPBT00;end case;commit;return 'succeed';end;procedure queryPicFromOtherSysTable(paraTJH000 in number,paraDSFBM0 in varchar2, --此处代表 第三方表名paraTJLM00 in varchar2,  --此处代表 第三方表中的搜索条件列paraTPLM00 in varchar2,cur_Pic    out ref_cur)isaSqlStr varchar2(300);beginaSqlStr:= 'select  ''1.jpg'' TPBT00, '||paraTPLM00|| ' TP0000 '||' from '||paraDSFBM0||' where '||paraTJLM00||' = '||paraTJH000;
/*    aSqlStr:= 'insert into SY_PE_TMP_PDFReportPic(Tjh000, Bmbh00, Kslx00, SFCS00, Tpbt00, Tp0000)'||' select '||paraTJH000||','||paraBMBH00||','''||paraKSLX00||''',0,''1.jpg'','||paraTPLM00||' from '||paraDSFBM0||' where '||paraTJLM00||' = '||paraTJH000;*/open cur_Pic for aSqlStr;commit;end;--复制科室图片procedure CopyDeptPicture(paraTJH000 in number,paraTOTJH0 in number,paraYKSID0 in number,paraTOKSID in number,paraTPBT00 in varchar2,paraTSXX00 out varchar2,cur_ExamItemPicture out ref_cur,cur_PictureServer out ref_cur)isVSFYWID SY_PE_YWSJ_TJJCXM.SFYWID%type;VJCID00 SY_PE_YWSJ_TJJCXM.JCID00%type;VYXLX00 BM_BMBM00.YXLX00%type;VTPBT00 varchar2(4000);beginbeginselect SFYWID, JCID00 into VSFYWID, VJCID00from SY_PE_YWSJ_TJJCXM where TJH000 = paraTOTJH0 and BMBH00 = paraTOKSID and rownum = 1;exceptionwhen NO_DATA_FOUND thenparaTSXX00 := '目标科室还未开始检查,复制失败!';return;end;select YXLX00 into VYXLX00 from BM_BMBM00 where BMBH00 = paraTOKSID;if paraTPBT00 is not null thenVTPBT00 := ','||upper(paraTPBT00)||',';end if;insert into SY_PE_YWSJ_JCXMTX(XMTXID, TJH000, SFYWID, JCID00, TPBT00, BDY000, TPXDLJ, KSLX00, CTRQ00, BMBH00)select SQ_PE_YWSJ_JCXMTX_XMTXID.NextVal, paraTOTJH0, VSFYWID, VJCID00, TPBT00, '0','\'|| VYXLX00 ||'\'||to_char(sysdate, 'YYYYMMDD')||'\'||paraTOTJH0||'\'||TPBT00,VYXLX00, to_char(sysdate, 'YYYYMMDD'), paraTOKSID from SY_PE_YWSJ_JCXMTX Awhere  BMBH00 = paraYKSID0 and TJH000 = paraTJH000and instr(VTPBT00, ','||TPBT00||',') > 0and not exists(select 1 from VW_PE_JCXMTX where TJH000 = paraTOTJH0and TPBT00 = A.TPBT00 and KSLX00 = VYXLX00);if sql%notfound thenparaTSXX00 := '原科室无图片, 复制失败!';return;end if;commit;select YXLX00 into VYXLX00 from BM_BMBM00 where BMBH00 = paraYKSID0;open cur_ExamItemPicture forwith VW_TX as(select TJH000, BMBH00, JCBW00, BDY000, KSLX00, CTRQ00, TPBT00, SFYWID, KSLX00 YXLX00from VW_PE_JCXMTX where TJH000 = paraTOTJH0 and BMBH00 = paraTOKSID)select TJH000, BMBH00, JCBW00, BDY000, KSLX00, CTRQ00, TPBT00, SFYWID, KSLX00 YXLX00 from VW_TXunion allselect paraTJH000 TJH000, paraYKSID0 BMBH00, JCBW00, BDY000, VYXLX00 KSLX00, CTRQ00, TPBT00, SFYWID, VYXLX00 YXLX00 from VW_TX;open cur_PictureServer forselect BMBH00, FTPURL, FTPYHM, FTPMM0, (select YXLX00 from BM_BMBM00 where BMBH00 = A.BMBH00) YXLX00from SY_PE_YWZD_YXPZB0 A where BMBH00 in(paraTOKSID,paraYKSID0);end;--查询体检者影像科室信息procedure QueryPersonDeptInfo(paraTJH000 in number,paraCZY000 in number,cur_PersonDeptInfo out ref_cur)isbeginopen cur_PersonDeptInfo forselect BMBH00, FTPURL, FTPYHM, FTPMM0, (select YXLX00 from BM_BMBM00 where BMBH00 = A.BMBH00) YXLX00from SY_PE_YWZD_YXPZB0 A where exists(select 1 from SY_PE_YWSJ_TJFKJCwhere BMBH00 = A.BMBH00 and TJH000 = paraTJH000)and BMBH00 in (select BMBH00 from XT_YHBMQX where YGBH00 = paraCZY000);end;--删除接口图片function DeleteInterfacePicture(paraTJH000 in number,paraBMBH00 in number,paraTPLJ00 in varchar2) return varchar2 isbeginupdate SY_PE_YWSJ_SFXMJG set TPLJ00 = replace(TPLJ00, paraTPLJ00||';', '')where TJH000 = paraTJH000 and BMBH00 = paraBMBH00 and instr(TPLJ00, paraTPLJ00||';')>0;if sql%notfound thenupdate SY_PE_YWSJ_SFXMJG set TPLJ00 = replace(TPLJ00, paraTPLJ00, '')where TJH000 = paraTJH000 and BMBH00 = paraBMBH00 and instr(TPLJ00, paraTPLJ00)>0;end if;commit;return 'succeed';end;end PEIS_ReportPictureManage;

调用:
dao

void examItemPictureOperate(Map<String, Object> params);

mybastis的xml
PEIS_ReportPictureManage.examItemPictureOperate这是个function

<parameterMap id="examItemPictureOperate_paramMap" type="java.util.HashMap"><parameter property="result" mode="OUT" jdbcType="VARCHAR" javaType="java.lang.String"/><parameter property="paraOPFLAG" mode="IN" jdbcType="VARCHAR" javaType="java.lang.String"/><parameter property="paraTJH000" mode="IN" jdbcType="VARCHAR" javaType="java.lang.String"/><parameter property="paraBMBH00" mode="IN" jdbcType="VARCHAR" javaType="java.lang.String"/><parameter property="paraKSLX00" mode="IN" jdbcType="VARCHAR" javaType="java.lang.String"/><parameter property="paraJCBW00" mode="IN" jdbcType="VARCHAR" javaType="java.lang.String"/><parameter property="paraBDY000" mode="IN" jdbcType="VARCHAR" javaType="java.lang.String"/><parameter property="paraTPBT00" mode="IN" jdbcType="VARCHAR" javaType="java.lang.String"/><parameter property="paraCZY000" mode="IN" jdbcType="VARCHAR" javaType="java.lang.String"/></parameterMap><select id="examItemPictureOperate" parameterMap="examItemPictureOperate_paramMap" resultType="java.util.Map" statementType="CALLABLE"><![CDATA[{?=call PEIS_ReportPictureManage.examItemPictureOperate(?,?,?,?,?,?,?,?)}]]></select>

类似地 这是个procedure

 <parameterMap id="getReportForFrx_paramMap" type="java.util.HashMap"><parameter property="paraTJH000" mode="IN" jdbcType="VARCHAR" javaType="java.lang.String"/><parameter property="paraYYID00" mode="IN" jdbcType="VARCHAR" javaType="java.lang.String"/><parameter property="curSQXM" mode="OUT" jdbcType="CURSOR" javaType="java.sql.ResultSet" resultMap="commonMap"/><parameter property="curTJZ000" mode="OUT" jdbcType="CURSOR" javaType="java.sql.ResultSet" resultMap="commonMap"/><parameter property="curTJZZYS" mode="OUT" jdbcType="CURSOR" javaType="java.sql.ResultSet" resultMap="commonMap"/><parameter property="curZYBS" mode="OUT" jdbcType="CURSOR" javaType="java.sql.ResultSet" resultMap="commonMap"/><parameter property="curJWBS" mode="OUT" jdbcType="CURSOR" javaType="java.sql.ResultSet" resultMap="commonMap"/><parameter property="curJWSJ" mode="OUT" jdbcType="CURSOR" javaType="java.sql.ResultSet" resultMap="commonMap"/><parameter property="curSYS_SFYY" mode="OUT" jdbcType="CURSOR" javaType="java.sql.ResultSet" resultMap="commonMap"/><parameter property="curHYS_SFYH" mode="OUT" jdbcType="CURSOR" javaType="java.sql.ResultSet" resultMap="commonMap"/><parameter property="curJZBS" mode="OUT" jdbcType="CURSOR" javaType="java.sql.ResultSet" resultMap="commonMap"/><parameter property="curWJZBS" mode="OUT" jdbcType="CURSOR" javaType="java.sql.ResultSet" resultMap="commonMap"/><parameter property="curJWHBS" mode="OUT" jdbcType="CURSOR" javaType="java.sql.ResultSet" resultMap="commonMap"/><parameter property="curJZQTBS" mode="OUT" jdbcType="CURSOR" javaType="java.sql.ResultSet" resultMap="commonMap"/><parameter property="curTJZYJS" mode="OUT" jdbcType="CURSOR" javaType="java.sql.ResultSet" resultMap="commonMap"/><parameter property="curFFSZYS" mode="OUT" jdbcType="CURSOR" javaType="java.sql.ResultSet" resultMap="commonMap"/><parameter property="curFSZYS" mode="OUT" jdbcType="CURSOR" javaType="java.sql.ResultSet" resultMap="commonMap"/><parameter property="curTJZSHS" mode="OUT" jdbcType="CURSOR" javaType="java.sql.ResultSet" resultMap="commonMap"/><parameter property="curTJZHYS" mode="OUT" jdbcType="CURSOR" javaType="java.sql.ResultSet" resultMap="commonMap"/><parameter property="curTJZSYS" mode="OUT" jdbcType="CURSOR" javaType="java.sql.ResultSet" resultMap="commonMap"/><parameter property="curJKCF" mode="OUT" jdbcType="CURSOR" javaType="java.sql.ResultSet" resultMap="commonMap"/><parameter property="curZZBG" mode="OUT" jdbcType="CURSOR" javaType="java.sql.ResultSet" resultMap="commonMap"/><parameter property="curFKJC00" mode="OUT" jdbcType="CURSOR" javaType="java.sql.ResultSet" resultMap="commonMap"/><parameter property="curZJBGD" mode="OUT" jdbcType="CURSOR" javaType="java.sql.ResultSet" resultMap="commonMap"/><parameter property="curYXH" mode="OUT" jdbcType="CURSOR" javaType="java.sql.ResultSet" resultMap="commonMap"/><parameter property="curYXMSZD" mode="OUT" jdbcType="CURSOR" javaType="java.sql.ResultSet" resultMap="commonMap"/><parameter property="curJYK000" mode="OUT" jdbcType="CURSOR" javaType="java.sql.ResultSet" resultMap="commonMap"/><parameter property="curJYKJCXM" mode="OUT" jdbcType="CURSOR" javaType="java.sql.ResultSet" resultMap="commonMap"/><parameter property="curJYFKJC" mode="OUT" jdbcType="CURSOR" javaType="java.sql.ResultSet" resultMap="commonMap"/><parameter property="curZJ0000" mode="OUT" jdbcType="CURSOR" javaType="java.sql.ResultSet" resultMap="commonMap"/><parameter property="curXTZZ" mode="OUT" jdbcType="CURSOR" javaType="java.sql.ResultSet" resultMap="commonMap"/><parameter property="curZXZJTJ" mode="OUT" jdbcType="CURSOR" javaType="java.sql.ResultSet" resultMap="commonMap"/><parameter property="curJZZJTJ" mode="OUT" jdbcType="CURSOR" javaType="java.sql.ResultSet" resultMap="commonMap"/><parameter property="curXTZJ" mode="OUT" jdbcType="CURSOR" javaType="java.sql.ResultSet" resultMap="commonMap"/><parameter property="curJBFL" mode="OUT" jdbcType="CURSOR" javaType="java.sql.ResultSet" resultMap="commonMap"/><parameter property="curZYSQXM" mode="OUT" jdbcType="CURSOR" javaType="java.sql.ResultSet" resultMap="commonMap"/><parameter property="curZYJC" mode="OUT" jdbcType="CURSOR" javaType="java.sql.ResultSet" resultMap="commonMap"/><parameter property="curZYZSJG" mode="OUT" jdbcType="CURSOR" javaType="java.sql.ResultSet" resultMap="commonMap"/><parameter property="curDCJG" mode="OUT" jdbcType="CURSOR" javaType="java.sql.ResultSet" resultMap="commonMap"/><parameter property="curJCXMBD" mode="OUT" jdbcType="CURSOR" javaType="java.sql.ResultSet" resultMap="commonMap"/><parameter property="curTPBG00" mode="OUT" jdbcType="CURSOR" javaType="java.sql.ResultSet" resultMap="commonMap"/><parameter property="curTWBGT0" mode="OUT" jdbcType="CURSOR" javaType="java.sql.ResultSet" resultMap="commonMap"/></parameterMap><select id="getReportForFrx" parameterMap="getReportForFrx_paramMap" resultType="java.util.Map" statementType="CALLABLE"><![CDATA[call PEIS_PUBLIC_PRINT.queryReportForFrx(?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?)]]></select>

比较特殊的存储过程 table of类型的:
在package中定义的

type arrTTSFID is table of SY_PE_YWSJ_TTFZXM.TTSFID%type index by binary_integer;
procedure OperGroupingItem(paraFlag in number, --标志 0:新增  1 修改 2:删除 3清除 4  加入套餐paraTTSFID in out arrTTSFID ,--分组项目IDparaRWFZID in number ,--任务分组IDparaTCID00 in number, --套餐IDparaKL0000 in number, --扣率paraSQXMID in number ,--申请项目IDparaHospitalID in varchar2, --医院IDparaRETURN out varchar2, --返回标志 success 成功  failure 失败paraRTNMSG out varchar2 --返回信息) isvZXCGBZ number;vTSXX00 varchar2(400);vXXXX00 varchar2(400);idx     number;ECUSTOM  exception;beginparaRETURN:='failure';if   (paraFlag =0) or (paraFlag =1) or (paraFlag =2)  thenfor idx in 1..paraTTSFID.count loopSP_PE_YWSJ_TTFZXM_EDIT(POPFLAG=>paraFlag,PTTSFID=>paraTTSFID(idx),PRWFZID=>paraRWFZID,PTCID00=>paraTCID00,PKL0000=>paraKL0000,PSQXMID=>paraSQXMID,PYYID00=>paraHospitalID,PCOMMIT=>'N',PZXCGBZ=>vZXCGBZ,PTSXX00=>vTSXX00,PXXXX00=>vXXXX00);if vZXCGBZ=0 thenparaRTNMSG:=vTSXX00;raise ECUSTOM;end if;end loop;elsif paraFlag=3 thendelete from SY_PE_YWSJ_TTFZXM where RWFZID =paraRWFZID;elsif paraFlag=4 thenSP_PE_JRTCCZ(PFLAG00=>1,PTCID00=>paraTCID00,PKL0000=>paraKL0000,PID0000=>paraRWFZID,PSFGXXE=>'0',PDJBDBZ=>'1',PCZY000=>9999,PCZYKS0=>20,PDDH000=>'',PCOMMIT=>'N',PZXCGBZ=>vZXCGBZ,PTSXX00=>vTSXX00,PXXXX00=>vXXXX00);if vZXCGBZ=0 thenparaRTNMSG:=vTSXX00;raise ECUSTOM;end if;end if;if  sf_pe_getxtcs('PE_TSXESFSSGX','Y')<>'N' thenupdate SY_PE_YWSJ_TTRWFZ A set TSXE00=(select sum(ZHJG00) from SY_PE_YWSJ_TTFZXM where RWFZID=A.Rwfzid)where A.RWFZID=paraRWFZID and FBBH00 in ('2','4');end if;commit;paraRETURN:='success';paraRTNMSG:='';exceptionwhen ECUSTOM thenrollback;when others thenrollback;paraRTNMSG:=substrb(nvl(sqlerrm, '原因不明出错')||'!*',1,240);end;

调用

package com.thinkgem.jeesite.modules.group.dao;import com.thinkgem.jeesite.common.utils.SpringContextHolder;
import oracle.jdbc.OracleCallableStatement;
import oracle.jdbc.OracleConnection;
import oracle.jdbc.OracleTypes;
import org.apache.log4j.Logger;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.jdbc.core.support.JdbcDaoSupport;
import org.springframework.stereotype.Repository;import java.sql.Connection;
import java.sql.SQLException;
import java.util.Map;/*** 调用存储过程 参数类型 包含table of ...类型的*/
@Repository("OperGroupingItemDao")
public class OperGroupingItemDao extends JdbcDaoSupport {@Autowiredpublic OperGroupingItemDao() {javax.sql.DataSource dataSource = SpringContextHolder.getBean("dataSourceXmsq");setDataSource(dataSource);}public void operGroupingItem(Map<String, Object> params) throws SQLException{Connection conn=super.getConnection();OracleCallableStatement cs = null;try {oracle.jdbc.OracleConnection con = null;if (conn.isWrapperFor(OracleConnection.class)) {con = conn.unwrap(OracleConnection.class);}int[] arrTTSFID=(int[]) params.get("paraTTSFID");cs = (OracleCallableStatement) con.prepareCall("begin PEIS_AssignmentReserve.OperGroupingItem(?,?,?,?,?,?,?,?,?); end;");System.out.println((String) params.get("paraOPFLAG"));cs.setString(1, (String) params.get("paraOPFLAG"));if (null != arrTTSFID && arrTTSFID.length > 0) {cs.setPlsqlIndexTable(2, arrTTSFID, arrTTSFID.length, arrTTSFID.length, OracleTypes.NUMBER, 0);}cs.setString(3, (String) params.get("paraRWFZID"));cs.setString(4, params.get("paraTCID00")==null?"":(String) params.get("paraTCID00"));cs.setString(5, params.get("paraKL0000")==null?"0":(String) params.get("paraKL0000"));cs.setString(6, params.get("paraSQXMID")==null?"":(String) params.get("paraSQXMID"));cs.setString(7, (String) params.get("paraYYID00"));cs.registerOutParameter(8, OracleTypes.VARCHAR);cs.registerOutParameter(9, OracleTypes.VARCHAR);cs.registerIndexTableOutParameter (2,arrTTSFID.length,OracleTypes.NUMBER,0);cs.execute();params.put("returnTTSFID",cs.getPlsqlIndexTable(2));}finally{if(null != conn){conn.close();}if(null != cs){cs.close();}}}
}

oracle写存储过程ssm中调用存储过程相关推荐

  1. java 执行oracle 存储过程_oracle--在java中调用存储过程和存储函数

    在java中调用存储过程和存储函数 存储过程: 查询某个员工的姓名 月薪 职位: create or replace procedure queryempinfo(eno in number, pen ...

  2. SQL存储过程中调用存储过程返回的表

    存储过程pro_A返回一个表集合TableA,在存储过程pro_B中以TableA为数据源再做一重过滤,想实现代码复用,因此原意是在存储过程pro_B中调用存储过程pro_A,但事实发现我们不能写成s ...

  3. 在Java中调用存储过程

    本文阐述了怎么使用DBMS存储过程.我阐述了使用存储过程的基本的和高级特性,比如返回ResultSet.本文假设你对DBMS和JDBC已经非常熟悉,也假设你能够毫无障碍地阅读其它语言写成的代码(即不是 ...

  4. c efcore.mysql_EF Core在mysql中调用存储过程

    EF Core在mysql中调用存储过程,博主找了很多,然而大多都是EF Core+SqlServer的或者EF Core+Oracle的,并没有正对Mysql的Pomelo驱动的,所以查找了一些资料 ...

  5. java怎么调用存储函数_java中调用存储过程或存储函数的方法

    java中调用存储过程或存储函数的方法 1.调用存储过程:CallableStatement clstmt = null;try {clstmt = conn.prepareCall("{c ...

  6. mysql触发器调用存储过程出错_mysql 触发器中调用存储过程

    想要在MYSQL的触发器中调用存储过程,但是IDE提示: 0A000 Not allowed to return a result set from a trigger 触发器代码如下: DELIMI ...

  7. mysql在触发器中调用存储过程_mysql 触发器中调用存储过程

    想要在MYSQL的触发器中调用存储过程,但是IDE提示: 0A000 Not allowed to return a result set from a trigger 触发器代码如下: DELIMI ...

  8. Oracle 存储过程,Hibernate 调用存储过程,JDBC调用存储过程,Oracle 动态SQL

    Oracle 存储过程学习 目录 Oracle 存储过程........................................................................ ...

  9. Oracle在Pl/sql中的存储过程----zhoudianzhang

    Oracle 存储过程 目录 Oracle 存储过程... 1 Oracle存储过程基础知识... 1 Oracle存储过程的基本语法... 2 关于Oracle存储过程的若干问题备忘... 4 1. ...

  10. 在.net中调用存储过程的另一种方法。cmd.commandtype为commandtypetext

    [存储过程] '// CREATE PROCEDURE Test_procedure @cid int ,@y int, @n varchar(10) output AS select * from ...

最新文章

  1. darknet-mini:带注释的darknet简化版,助你深入理解YOLO
  2. tensorflow2.0中valid_data的作用是在训练的过程对对比训练数据与测试数据的准确率 损失率,便于判断模型的训练效果:是过拟合还是欠拟合(过拟合)
  3. javascript正则表达式小结
  4. 人工智能技术的新突破:MIT科学家发明Church AI语言
  5. webpack中hash、chunkHash、contentHash的区别
  6. 重载和引用函数编程实验
  7. LeetCode 173. 二叉搜索树迭代器(中序遍历)
  8. 利用lamda函数 的函数式编程 实现scrapy审计外网安全问题
  9. 数据结构Java版之排序算法(二)
  10. Github简单使用 - 更新项目
  11. 大数据可视化的应用场景
  12. Android中native进程内存泄露的调试技巧
  13. 基于暗通道先验的单幅图像去雾
  14. input和output哪个是充电_Angular2中Input和Output用法及示例
  15. linux安装pyodbc模块,Linux下安装pyodbc报错 error: command 'gcc' failed with exit status 1
  16. 如何自己编写一个交通仿真软件(一)火种
  17. ❤520给她准备的情人节礼物~html+css+javascript漫天飞雪3D相册(含音乐)
  18. Jupyter Notebook简洁教程
  19. 字节跳动面试锦集(二):项目HR高频面试总结
  20. JSON parse error: Unrecognized field “abc“ (class cn.kk.xxxDto), not marked as ignorable;

热门文章

  1. 数据库创建图书馆管理系统
  2. HTML元素居中的方法
  3. CrossApp 设置App启动页(无任何黑屏白屏,显示完启动画面之间到显示出首页界面)
  4. xmlspy使用必备的技巧
  5. hbase数据库详解
  6. 算法竞赛入门经典(第2版)-刘汝佳-第九章例题解题源码(C++语言)(部分)
  7. build lavas 失败_vue lavas的项目在IE下显示空白
  8. matlab 无法终止,Matlab使用xlsread, xlswrite函数导致excel进程无法终止的问题
  9. 5 步教你将 MRS 数据导入 DWS
  10. SDPT3 4.0版:半正定二次线性规划的MATLAB软件包