最新文章专题视频专题问答1问答10问答100问答1000问答2000关键字专题1关键字专题50关键字专题500关键字专题1500TAG最新视频文章推荐1 推荐3 推荐5 推荐7 推荐9 推荐11 推荐13 推荐15 推荐17 推荐19 推荐21 推荐23 推荐25 推荐27 推荐29 推荐31 推荐33 推荐35 推荐37视频文章20视频文章30视频文章40视频文章50视频文章60 视频文章70视频文章80视频文章90视频文章100视频文章120视频文章140 视频2关键字专题关键字专题tag2tag3文章专题文章专题2文章索引1文章索引2文章索引3文章索引4文章索引5123456789101112131415文章专题3
当前位置: 首页 - 科技 - 知识百科 - 正文

存储过程运行日志记录通用模块

来源:动视网 责编:小采 时间:2020-11-09 14:57:57
文档

存储过程运行日志记录通用模块

存储过程运行日志记录通用模块:目标 实现记录执行存储过程的开始时间,结束时间,运行状态,错误信息等,以函数封装日志记录的方式,存储调用函数 源码 存储过程模版 CREATE OR REPLACE PROCEDURE proc_xx IS --修改标志返回值 V_AFFECT_LINE NUMBER; PROID NUMB
推荐度:
导读存储过程运行日志记录通用模块:目标 实现记录执行存储过程的开始时间,结束时间,运行状态,错误信息等,以函数封装日志记录的方式,存储调用函数 源码 存储过程模版 CREATE OR REPLACE PROCEDURE proc_xx IS --修改标志返回值 V_AFFECT_LINE NUMBER; PROID NUMB


目标 实现记录执行存储过程的开始时间,结束时间,运行状态,错误信息等,以函数封装日志记录的方式,存储调用函数 源码 存储过程模版 CREATE OR REPLACE PROCEDURE proc_xx IS --修改标志返回值 V_AFFECT_LINE NUMBER; PROID NUMBER;BEGIN --调用更改标志函

目标

实现记录执行存储过程的开始时间,结束时间,运行状态,错误信息等,以函数封装日志记录的方式,存储调用函数

源码

存储过程模版
CREATE OR REPLACE PROCEDURE proc_xx

 IS

 --修改标志返回值
 V_AFFECT_LINE NUMBER;
 PROID NUMBER;
BEGIN

 --调用更改标志函数,将进程改为运行中'S'
 V_AFFECT_LINE := INSERT_LOG(PROID,'proc_xx',WIFI.GLOBAL_PARAM.STATUS_START);

 --逻辑处理函数调用
 V_AFFECT_LINE := WIFI.func_xx();

 --修改标志,成功置C
 V_AFFECT_LINE := WIFI.MODIFY_STATUS(PROID,WIFI.GLOBAL_PARAM.STATUS_CLOSE,'');


EXCEPTION
 WHEN OTHERS THEN
 --调用更改标志函数,将进程改为出错'F'
 V_AFFECT_LINE := MODIFY_STATUS(PROID,WIFI.GLOBAL_PARAM.STATUS_FAILED,WIFI.GLOBAL_PARAM.LOG_EXCEPTION);
END;
函数模版
create or replace function func_xx return int is
 begin

.... 
 
return 1;

exception
 when others then
 set_error_log ();
 RETURN 0;
 end;
相关日志记录函数
CREATE OR REPLACE FUNCTION INSERT_LOG (
 proid OUT NUMBER,
 program_name IN VARCHAR2,
 status IN VARCHAR2
)
 RETURN NUMBER
IS
 -------------------------------------------------------------------------------------------------------------------------------------------
------------------------------------------------------------------------------------------------------------------------------------------
---
-- -功能描述: 初始化日志
----------------------------------------------------------------------------------------------------------------------------------------------
------------------------------------------------------------------------------------------------------------------------------------------------
BEGIN
 INSERT INTO program_log
 VALUES (program_log_seq.NEXTVAL, TO_CHAR (SYSDATE, 'YYYYMMDD'),
 program_name, SYSDATE, NULL, status, '');

 SELECT program_log_seq.CURRVAL INTO proid FROM dual;
 COMMIT;
 RETURN 1;
EXCEPTION
 WHEN OTHERS
 THEN
 RETURN 0;
 END;
 
 
 CREATE OR REPLACE FUNCTION MODIFY_STATUS
 ( proId IN number,
 status IN varchar2,
 proDesc in varchar2)
 RETURN NUMBER IS

 thisDate date;

BEGIN
 -------------------------------------------------------------------------------------------------------------------------------------------
------------------------------------------------------------------------------------------------------------------------------------------
---
-- -功能描述: 修改日志表存储过程运行状态,记录开始时间 结束时间 出错信息
----------------------------------------------------------------------------------------------------------------------------------------------
------------------------------------------------------------------------------------------------------------------------------------------------
 thisDate := sysdate;
 --更新状态 出错信息
 update program_log set program_status=status, memo=proDesc where id=proId;

 --更新日期:如果是运行中,更新起始运行日期;如果是运行成功或者运行失败,更新结束运行日期
 IF status='S' THEN
 update program_log set start_date=thisDate where id=proId;
 ELSIF status='C' THEN
 update program_log set end_date=thisDate where id=proId;
 ELSIF status='F' THEN
 update program_log set end_date=thisDate where id=proId;
 COMMIT;
 RAISE_APPLICATION_ERROR(-20040,'STATUS IS F');

 END IF;
 /* ELSIF status='C' OR status='F' THEN
 update program_log set end_date=thisDate where id=proId;
 END IF;*/
 commit;
 RETURN 1;
EXCEPTION
 WHEN OTHERS THEN
 RAISE_APPLICATION_ERROR(-20041,'STATUS IS F');
 RETURN 0;
END;

CREATE OR REPLACE PROCEDURE SET_ERROR_LOG
 IS
BEGIN
 GLOBAL_PARAM.LOG_EXCEPTION := 'error desc---'||sqlerrm;
 commit;
 RAISE no_data_found;
END; -- Procedure;


CREATE OR REPLACE PACKAGE GLOBAL_PARAM IS
LOG_EXCEPTION VARCHAR2(2000):='';
STATUS_START VARCHAR2(10):='S';
STATUS_CLOSE VARCHAR2(10):='C';
STATUS_FAILED VARCHAR2(10):='F';

END; 
创建日志表
create table PROGRAM_LOG
(
 ID NUMBER not null,
 BATCH_NUMBER VARCHAR2(50),
 PROGRAM_NAME VARCHAR2(100),
 START_DATE DATE,
 END_DATE DATE,
 PROGRAM_STATUS VARCHAR2(20),
 MEMO VARCHAR2(2000)
)

文档

存储过程运行日志记录通用模块

存储过程运行日志记录通用模块:目标 实现记录执行存储过程的开始时间,结束时间,运行状态,错误信息等,以函数封装日志记录的方式,存储调用函数 源码 存储过程模版 CREATE OR REPLACE PROCEDURE proc_xx IS --修改标志返回值 V_AFFECT_LINE NUMBER; PROID NUMB
推荐度:
标签: 记录 目标 过程
  • 热门焦点

最新推荐

猜你喜欢

热门推荐

专题
Top