公共日志过程

来源:互联网 发布:unity3d 录屏 编辑:程序博客网 时间:2024/05/17 02:42
--*********************************************************************************--功能说明:--    日志过程--参数说明:--    p_log_id      日志ID--    p_proc_name   过程名  --    p_err_line    异常行数--    p_err_code    错误代码 异常时获取错误代码 正常时 S开始 E结束 sqlerrm 具体异常信息--    p_err_msg     错误信息--    p_user        创建人  --创建说明:创建者  创建日期--修改历史:修改者  修改日期  修改原因(简要说明)--          暂无    暂无      暂无--*********************************************************************************procedure proc_log(p_log_id      varchar2, p_proc_name varchar2,   p_err_line    varchar2,   p_err_code    varchar2,   p_err_msg     varchar2,   p_user        varchar2                  )is  pragma autonomous_transaction;   v_err_msg     varchar2(4000);beginv_err_msg := p_err_msg;  if p_err_code != 'S' then  --S 表示程序开始 不用计算耗时      select to_char((sysdate - created_date) * 24 * 60, 'fm9999999990.00') into v_err_msg from fxq_log where log_id = p_log_id;  v_err_msg := substrb('耗时:'||v_err_msg||'分, '||p_err_msg, 1, 4000);    end if;  merge into fxq_log ausing (select count(1) cnt from fxq_log where log_id = p_log_id) b   on (b.cnt > 0) when matched then  update set err_line       = p_err_line     , err_code       = p_err_code     , err_msg        = v_err_msg      , updated_by     = nvl(p_user, user) ,            updated_date   = sysdate   where log_id = p_log_id   when not matched then   insert (log_id       ,  proc_name         ,  err_line          ,  err_code          ,  err_msg           ,  created_by        ,  created_date       )values(                      nvl(p_log_id, sys_guid()) ,     p_proc_name       ,     p_err_line        ,     p_err_code        ,     v_err_msg         ,     nvl(p_user, user) ,     sysdate          );  commit;end proc_log;

0 0
原创粉丝点击