使用spring中的JdbcTemplate调用oracle中的有出入参数的存储过程

使用java spring中的JdbcTemplate调用oracle中的存储过程(该存储过程有入参还出参):
存储过程:
CREATE OR REPLACE PROCEDURE "HIS_BZ_QC"."PROC_APP_REGIST" (
Hosnum                  In  Varchar2,--医院编号
App_Hid                 In  Varchar2,--号源ID
App_Id_No               In  Varchar2,--身份证号
App_Patient_Name        In  Varchar2,--就诊人姓名
App_Phone               In  Varchar2,
App_Patient_Id          In  Varchar2,--病人ID
App_Dept_Code           In  Varchar2,--科室编号
App_Dept_Name           In  Varchar2,--科室名称
App_Doctor_Code         In  Varchar2,--医生编号
App_Doctor_Name         In  Varchar2,--医生姓名
App_Reg_Date            In  Varchar2,--预约号源日期
App_Hb_Time             In  Varchar2,--号源时段
App_Clinic_Duration     In  Varchar2,--号源午别
App_Trade_Order_No      In  Varchar2,--趣医订单号
App_Diag_Fee            In  Varchar2,--诊疗费
App_Pharmacy_Fee        In  Varchar2,--药事费
His_Operator            In  Varchar2,--HIS操作员编号
His_Operator_Name       In  Varchar2,--HIS操作员姓名
Free_Treat_Flag         In  Varchar2,--挂号费别

Result_Code             Out Varchar2,--预约返回结果
Error_Msg               Out Varchar2,--错误信息
His_Order_No            Out Varchar2,--HIS交易流水号
Verify_Code             Out Varchar2,--取号验证码
Clinic_No               Out Varchar2,--门诊号
Visit_No                Out Varchar2,--就诊序号
Ser_No                  Out Varchar2--发票号
) As
T_Err_Item               Exception;
T_Error_Msg             Varchar2(1000);
T_Regid                 Varchar2(100);
T_Invoiceid             Varchar2(100);
T_Patientid             Bas_Patients.Patientid%Type;
T_Chgdetailid           Chg_Details.Chgdetailid%Type;
T_Payid                 Chg_Paydetails.Payid%Type;
T_Patname               Bas_Patients.Patname%Type;
T_Sex                   Bas_Patients.Sex%Type;
T_Dateofbirth           Bas_Patients.Dateofbirth%Type;
T_Idnum                 Bas_Patients.Idnum%Type;
T_Phonenumber           Bas_Patients.Phonecall%Type;
T_Clctimes              Bas_Patients.Clctimes%Type := 1;
T_Currentnum            Clc_Sch.M_Currentnum%Type;
T_Datereg               Clc_Reg.Datereg%Type;
T_Invoicenum            Bas_Invoice.Currentnum%Type;
T_Num                   Number;
T_Am                    Varchar2(2);
T_His_Operator          Bas_Patients.Operator%Type;--HIS操作员编号
T_His_Operator_Name     Bas_Patients.Operatorname%Type;--HIS操作员姓名
T_Hosnum                Clc_Sch.Hosnum%Type;
T_Takeid                Bas_Invoice.Takeid%Type;
T_Regage                Clc_Reg.Regage%Type;
Begin
    --判断排班和医院编号是否匹配
    Select A.Hosnum Into T_Hosnum From Clc_Sch A Where Schid = App_Hid;
    If T_Hosnum != Hosnum Then
       T_Error_Msg := '排班和医院编号不匹配!';
       Raise T_Err_Item;
      End If;
    --获取操作员编号
    Select His_Operator Into T_His_Operator From Dual;
      If Sql%Rowcount = 0 Then
             T_Error_Msg := '获取操作员编号错误!';
             Raise T_Err_Item;
      End If;
    --获取操作员姓名
    Select His_Operator_Name Into T_His_Operator_Name From Dual;
      If Sql%Rowcount = 0 Then
             T_Error_Msg := '获取操作员姓名错误!';
             Raise T_Err_Item;
      End If;
    --判断是否有患者信息,无,新建,有,返回。
    --无患者信息
    Select Count(*) Into T_Num From Bas_Patients A Where A.Patname = App_Patient_Name And A.Idnum 
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值