记忆异常日志

CREATE OR REPLACE Procedure Stp_Running_Log(p_Seq_No          Number, --流水号
                                            p_Package_Name    Varchar2, --包名
                                            p_Proc_Name       Varchar2, --过程名
                                            p_Excep_Desc      Varchar2, --异常描述
                                            p_Excep_Remk      Varchar2, --异常备注:BEGIN表示开始 END表示结束 ERROR表示失败
                                            p_Line_No         Number, --异常行号
                                            p_Call_Sno        Number, --调用序号
                                            p_Excep_Dt        Date Default Sysdate, --异常时间
                                            p_Excep_Code      Varchar2 Default 0, --异常代码
                                            p_Receiveraddress Varchar2 Default Null) --邮件接收地址,可以同时发送到多个地址上,地址之间用","或者";"隔开
As
Begin
  Insert Into Tl_Exception_Log
    (Seq_No,
     Package_Name,
     Procedure_Name,
     Exception_Tm,
     Exception_Code,
     Exception_Desc,
     Exception_Remk,
     Line_No,
     Call_No)
  Values
    (p_Seq_No,
     Substr(p_Package_Name, 1, 120),
     Substr(p_Proc_Name, 1, 120),
     p_Excep_Dt,
     Substr(p_Excep_Code, 1, 60),
     Substr(p_Excep_Desc, 1, 1000),
     Substr(p_Excep_Remk, 1, 600),
     p_Line_No,
     p_Call_Sno);
  Commit;
  --出现异常发送邮件给相关人员
  /* 无需发邮件
  IF P_EXCEP_CODE = -1 AND p_ReceiverAddress IS NOT NULL THEN
     STP_SENDEMAIL(P_TXT => P_PACKAGE_NAME||'.'||P_PROC_NAME||'  '||P_EXCEP_DESC,
                   P_SUB => 'PROCEDURE RUNNING ERROR',
                   P_RECEIVER => p_ReceiverAddress);
  END IF;
  */
Exception
  When Others Then
    Dbms_Output.Put_Line('STP_RUNNING_LOG' || Sqlcode || ':' || Sqlerrm);
    Rollback;
End Stp_Running_Log;

猜你喜欢

转载自azhu202.iteye.com/blog/2305047