消息关闭
    暂无新消息!
CREATE OR REPLACE 
PROCEDURE AddNewTuiFei
(
 n_id   T_MZTFSQ_JOB.id%TYPE,               --唯一标识ID
 n_mzh T_MZTFSQ_JOB.F_MZH%TYPE,         --门诊号
 n_jzkh  T_MZTFSQ_JOB.F_JZKH%TYPE,      --就诊卡号
 n_hzxm T_MZTFSQ_JOB.F_HZXM%TYPE,      --患者姓名
 n_tfyy T_MZTFSQ_JOB.F_TFYY%TYPE,      --退费原因
 n_tfyp T_MZTFSQ_JOB.F_TFYP%TYPE,      --退费药品/检查
 n_applydate T_MZTFSQ_JOB.F_APPLYDATE%TYPE, --申请发起时间
 n_mzlsh T_MZTFSQ_JOB.F_MZLSH%TYPE,      --门诊流水号
 n_totalprice T_MZTFSQ_JOB.F_TOTALPRICE%TYPE, --退费总价
 n_createtime T_MZTFSQ_JOB.CREATE_TIME %TYPE,      --创建时间
 n_issend T_MZTFSQ_JOB.IS_SEND%TYPE    --是否发送(默认为空,用作OA轮询判断)
)
AS
BEGIN
 --向表中插入数据
 INSERT INTO T_MZTFSQ_JOB(id,F_MZH,F_JZKH,F_HZXM,F_TFYY,F_TFYP,F_APPLYDATE,F_MZLSH,F_TOTALPRICE,CREATE_TIME,IS_SEND)
  VALUES(n_id,n_mzh,n_jzkh,n_hzxm,n_tfyy,n_tfyp,n_applydate,n_mzlsh,n_totalprice,n_createtime,n_issend);
 EXCEPTION   
      WHEN OTHERS Then  
     DBMS_OUTPUT.PUT_LINE('存储失败');  
     Rollback;  
  COMMIT;
END AddNewTuiFei;


因为这个存储过程是给别的系统提供的,现在要让对方看是否执行成功,怎么添加一个返回值来判断?

3个回答

︿ 1
CREATE OR REPLACE 
PROCEDURE AddNewTuiFei
(
 n_id   T_MZTFSQ_JOB.id%TYPE,               --唯一标识ID
 n_mzh T_MZTFSQ_JOB.F_MZH%TYPE,         --门诊号
 n_jzkh  T_MZTFSQ_JOB.F_JZKH%TYPE,      --就诊卡号
 n_hzxm T_MZTFSQ_JOB.F_HZXM%TYPE,      --患者姓名
 n_tfyy T_MZTFSQ_JOB.F_TFYY%TYPE,      --退费原因
 n_tfyp T_MZTFSQ_JOB.F_TFYP%TYPE,      --退费药品/检查
 n_applydate T_MZTFSQ_JOB.F_APPLYDATE%TYPE, --申请发起时间
 n_mzlsh T_MZTFSQ_JOB.F_MZLSH%TYPE,      --门诊流水号
 n_totalprice T_MZTFSQ_JOB.F_TOTALPRICE%TYPE, --退费总价
 n_createtime T_MZTFSQ_JOB.CREATE_TIME %TYPE,      --创建时间
 n_issend T_MZTFSQ_JOB.IS_SEND%TYPE,    --是否发送(默认为空,用作OA轮询判断)
 ret_code  out varchar2(1),
 ret_desc out varchar2(100)
)
AS
BEGIN
 --向表中插入数据
 INSERT INTO T_MZTFSQ_JOB(id,F_MZH,F_JZKH,F_HZXM,F_TFYY,F_TFYP,F_APPLYDATE,F_MZLSH,F_TOTALPRICE,CREATE_TIME,IS_SEND)
  VALUES(n_id,n_mzh,n_jzkh,n_hzxm,n_tfyy,n_tfyp,n_applydate,n_mzlsh,n_totalprice,n_createtime,n_issend);
 EXCEPTION   
   WHEN OTHERS Then  
   ret_code := 0;
     DBMS_OUTPUT.PUT_LINE('存储失败');  
     Rollback;  
  COMMIT;
END AddNewTuiFei;

改成这样会报错
︿ 0
CREATE OR REPLACE 
PROCEDURE AddNewTuiFei(In_Data IN VARCHAR2,         -- 传入数据
                       Out_Errorcd OUT VARCHAR2,    -- 提示码
                       Out_Errortx OUT VARCHAR2     -- 提示信息
                        ) IS

 n_id   T_MZTFSQ_JOB.id%TYPE,               --唯一标识ID
 n_mzh T_MZTFSQ_JOB.F_MZH%TYPE,         --门诊号
 n_jzkh  T_MZTFSQ_JOB.F_JZKH%TYPE,      --就诊卡号
 n_hzxm T_MZTFSQ_JOB.F_HZXM%TYPE,      --患者姓名
 n_tfyy T_MZTFSQ_JOB.F_TFYY%TYPE,      --退费原因
 n_tfyp T_MZTFSQ_JOB.F_TFYP%TYPE,      --退费药品/检查
 n_applydate T_MZTFSQ_JOB.F_APPLYDATE%TYPE, --申请发起时间
 n_mzlsh T_MZTFSQ_JOB.F_MZLSH%TYPE,      --门诊流水号
 n_totalprice T_MZTFSQ_JOB.F_TOTALPRICE%TYPE, --退费总价
 n_createtime T_MZTFSQ_JOB.CREATE_TIME %TYPE,      --创建时间
 n_issend T_MZTFSQ_JOB.IS_SEND%TYPE    --是否发送(默认为空,用作OA轮询判断)

BEGIN
 --向表中插入数据
 INSERT INTO T_MZTFSQ_JOB(id,F_MZH,F_JZKH,F_HZXM,F_TFYY,F_TFYP,F_APPLYDATE,F_MZLSH,F_TOTALPRICE,CREATE_TIME,IS_SEND)
  VALUES(n_id,n_mzh,n_jzkh,n_hzxm,n_tfyy,n_tfyp,n_applydate,n_mzlsh,n_totalprice,n_createtime,n_issend);
  Out_Errorcd := 'SUCC';
  Out_Errortx := '存储成功';
 EXCEPTION   
      WHEN OTHERS Then  
     DBMS_OUTPUT.PUT_LINE('存储失败');  
     Rollback;  
     Out_Errorcd := 'FAIL';
     Out_Errortx := '存储失败';
  COMMIT;
END AddNewTuiFei;