--*********************************************************************************
--功能说明:
-- 日志过程
--参数说明:
-- 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);
begin
v_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 a
using (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;
公共日志过程
最新推荐文章于 2022-08-28 22:44:50 发布