时间:2021-07-01 10:21:17 帮助过:8人阅读
create table SSS.TC_EXCEPTION_LOG ( log_id NUMBER(20) not null, package_name VARCHAR2(120), proc_name VARCHAR2(120), exception_tm DATE default sysdate, exception_code VARCHAR2(200), exception_desc VARCHAR2(1000), exception_remk VARCHAR2(600), line_no NUMBER(10) ); comment on table SSS.TC_EXCEPTION_LOG is ‘系统异常日志数据‘; comment on column SSS.TC_EXCEPTION_LOG.log_id is ‘主键‘; comment on column SSS.TC_EXCEPTION_LOG.package_name is ‘包名‘; comment on column SSS.TC_EXCEPTION_LOG.proc_name is ‘过程名‘; comment on column SSS.TC_EXCEPTION_LOG.exception_tm is ‘异常时间‘; comment on column SSS.TC_EXCEPTION_LOG.exception_code is ‘异常编码‘; comment on column SSS.TC_EXCEPTION_LOG.exception_desc is ‘异常描述‘; comment on column SSS.TC_EXCEPTION_LOG.exception_remk is ‘异常说明‘; comment on column SSS.TC_EXCEPTION_LOG.line_no is ‘异常行号‘; create index SSS.IDX_TC_EXCEPTION_LOG1 on SSS.TC_EXCEPTION_LOG (PROC_NAME); alter table SSS.TC_EXCEPTION_LOG add constraint IPK_TC_EXCEPTION_LOG primary key (LOG_ID); create table SSS.TC_EXECUTE_LOG ( log_id NUMBER(20) not null, package_name VARCHAR2(120), proc_name VARCHAR2(120), strat_tm DATE default sysdate not null, end_tm DATE, spend_tm NUMBER(10), ref_data_rows NUMBER(10), remk VARCHAR2(1000) ); comment on table SSS.TC_EXECUTE_LOG is ‘公用执行日志表‘; comment on column SSS.TC_EXECUTE_LOG.log_id is ‘执行日志ID‘; comment on column SSS.TC_EXECUTE_LOG.package_name is ‘包名‘; comment on column SSS.TC_EXECUTE_LOG.proc_name is ‘过程名‘; comment on column SSS.TC_EXECUTE_LOG.strat_tm is ‘执行开始时间‘; comment on column SSS.TC_EXECUTE_LOG.end_tm is ‘执行结束时间‘; comment on column SSS.TC_EXECUTE_LOG.spend_tm is ‘执行花费时间(单位: 0.01秒)‘; comment on column SSS.TC_EXECUTE_LOG.ref_data_rows is ‘执行涉及数据量‘; comment on column SSS.TC_EXECUTE_LOG.remk is ‘注释‘; create index SSS.INK_TC_EXECUTE_LOG_01 on SSS.TC_EXECUTE_LOG (PACKAGE_NAME, PROC_NAME, REMK); create index SSS.INK_TC_EXECUTE_LOG_02 on SSS.TC_EXECUTE_LOG (STRAT_TM); alter table SSS.TC_EXECUTE_LOG add constraint IPK_TC_EXECUTE_LOG primary key (LOG_ID, STRAT_TM);
2. 记录异常的PKG
CREATE OR REPLACE PACKAGE BODY SSS.PKG_SYS_LOG IS
--*************************************************************
-- AUTHOR : KELIVEN LIU
-- CREATED : 2008-05-20
-- PURPOSE : 记录系统中存储过程运行日志
-- PARAMETER:
-- P_PACKAGE_NAME VARCHAR2 包名
-- P_PROC_NAME VARCHAR2, 过程名
-- P_EXCEP_DT DATE, 执行日期
-- P_EXCEP_CODE VARCHAR2, 异常代码
-- P_EXCEP_DESC VARCHAR2, 异常描述信息
-- P_EXCEP_REMK VARCHAR2, 备注,可能的值为‘BEGIN‘,‘END‘,‘ERROR‘
-- P_LINE_NO NUMBER 行号
-- MODIFY HISTORY
-- PERSON DATE COMMENTS
-- -------------------------------------------------------------
--*************************************************************
--*************************************************************
-- AUTHOR : KELIVEN LIU
-- CREATED : 2008-05-20
-- PURPOSE : 记录系统中存储过程运行日志
-- PARAMETER:
-- NAME TYPE DESC
-- P_SEQ_NO NUMBER 发生异常存储过程中主要sequence的当前值
-- P_PROC_NAME VARCHAR2 存储过程名
-- P_EXCEP_DT DATE 时间,包括开始时间,结束时间,异常发生时间
-- P_EXCEP_CODE VARCHAR2 异常代码
-- P_EXCEP_DESC VARCHAR2 异常描述信息
-- P_EXCEP_REMK VARCHAR2 备注,可能的值为‘BEGIN‘,‘END‘,‘ERROR‘
-- P_LINE_NO NUMBER 行号
-- P_PACKAGE_NAME VARCHAR2, 包名
-- P_PROC_NAME VARCHAR2, 过程名
-- P_EXEC_START_TM DATE, 执行开始时间
-- P_EXEC_END_TM DATE, 执行结束时间
-- P_EXEC_PEND_TM NUMBER, 执行花费时间
-- P_EXEC_REF_DATA_ROWS NUMBER, 涉及数据量
-- P_EXEC_REMK VARCHAR2 备注,可能的值为‘BEGIN‘,‘END‘,‘ERROR‘
-- MODIFY HISTORY
-- PERSON DATE COMMENTS
-- -------------------------------------------------------------
--*************************************************************
PROCEDURE ERROR_LOG(P_PACKAGE_NAME VARCHAR2,
P_PROC_NAME VARCHAR2,
P_EXCEP_DT DATE,
P_EXCEP_CODE VARCHAR2,
P_EXCEP_DESC VARCHAR2,
P_EXCEP_REMK VARCHAR2,
P_LINE_NO NUMBER) AS
PRAGMA AUTONOMOUS_TRANSACTION;
BEGIN
INSERT INTO TC_EXCEPTION_LOG
(LOG_ID,
PACKAGE_NAME,
PROC_NAME,
EXCEPTION_TM,
EXCEPTION_CODE,
EXCEPTION_DESC,
EXCEPTION_REMK,
LINE_NO)
VALUES
(SEQ_LOG.NEXTVAL,
SUBSTR(P_PACKAGE_NAME, 1, 120),
SUBSTR(P_PROC_NAME, 1, 120),
P_EXCEP_DT,
SUBSTR(P_EXCEP_CODE, 1, 200),
SUBSTR(P_EXCEP_DESC, 1, 1000),
SUBSTR(P_EXCEP_REMK, 1, 600),
P_LINE_NO);
COMMIT;
EXCEPTION
WHEN OTHERS THEN
DBMS_OUTPUT.PUT_LINE(‘STP_RUNNING_LOG‘ || SQLCODE || ‘:‘ || SQLERRM);
ROLLBACK;
END ERROR_LOG;
---系统执行日志
PROCEDURE EXECUTE_LOG(P_PACKAGE_NAME VARCHAR2,
P_PROC_NAME VARCHAR2,
P_EXEC_START_TM DATE,
P_EXEC_END_TM DATE,
P_EXEC_PEND_TM NUMBER,
P_EXEC_REF_DATA_ROWS NUMBER,
P_EXEC_REMK VARCHAR2) AS
PRAGMA AUTONOMOUS_TRANSACTION;
BEGIN
INSERT INTO TC_EXECUTE_LOG
(LOG_ID,
PACKAGE_NAME,
PROC_NAME,
STRAT_TM,
END_TM,
SPEND_TM,
REF_DATA_ROWS,
REMK)
VALUES
(SEQ_LOG.NEXTVAL,
SUBSTR(P_PACKAGE_NAME, 1, 120),
SUBSTR(P_PROC_NAME, 1, 120),
P_EXEC_START_TM,
P_EXEC_END_TM,
P_EXEC_PEND_TM,
P_EXEC_REF_DATA_ROWS,
SUBSTR(P_EXEC_REMK, 1, 1000));
COMMIT;
EXCEPTION
WHEN OTHERS THEN
DBMS_OUTPUT.PUT_LINE(‘TC_EXECUTE_LOG‘ || SQLCODE || ‘:‘ || SQLERRM);
ROLLBACK;
END EXECUTE_LOG;
END PKG_SYS_LOG;
/
Oracle 日志记录工具类
标签:create author cti 注释 table ber char sql error_log