• SQL PKG示例


    CREATE OR REPLACE PACKAGE PKG_SYS_LOG IS
    -- Author : Li Cong
    -- Created : 2009-10-12
    -- Purpose : 存放系统级别的日志信息,如,过程报错。

    ---系统报错日志记录
    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);

    ---系统执行日志
    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);
    END PKG_SYS_LOG;

    CREATE OR REPLACE PACKAGE BODY 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;

  • 相关阅读:
    Shell编程之运算符和环境变量配置文件
    Shell编程之变量
    PCI BAR设置过程[转]
    基于ARM的SoC设计入门[转]
    负载均衡
    [转]vc中调用其他应用程序的方法(函数) winexec,shellexecute ,createprocess
    VC/DDK/DriverWorks开发环境配置
    windows下注册表脚本编写
    _cdecl与_stdcall区别
    在C语言中破坏函数调用堆栈
  • 原文地址:https://www.cnblogs.com/heyanan/p/7162297.html
Copyright © 2020-2023  润新知