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;

SQL PKG示例的更多相关文章

  1. SQL 2005示例库(转载)

    sql2005数据库实例 从网上找还得麻烦,转了过来,点击就可以下载! 在学习SQL2005中离开不了SQL2005示例数据库,AdventureWorks数据库下载安装,,northwind数据库下 ...

  2. mybatis的sql中使用$会出现sql注入示例

    mybatis的sql中使用$会出现sql注入示例: 模拟简单登录场景: 页面代码: function login(){ //sql注入 var user = { username : "' ...

  3. Mysql 使用命令及 sql 语句示例

    Mysql 是数据库开发使用的主要平台之一.sql 的学习掌握与使用是数据库开发的基础,此处展示详细sql 语句的写法,及各种功能下的 sql 语句. 在此处有 sql 语句使用示例:在这里 此处插入 ...

  4. sql注入示例

    实验指导说明 实验环境 • 实验环境 o 操作机:Windows XP o 目标机:Windows 2003 o 目标网址:www.test.ichunqiu • 实验工具: Tools Path S ...

  5. Spark SQL UDAF示例

    UDAF:用户自定义聚合函数 Scala 2.10.7,spark 2.0.0 package UDF_UDAF import java.util import org.apache.spark.Sp ...

  6. Spark SQL UDF示例

    UDF即用户自定函数,注册之后,在sql语句中使用. 基于scala-sdk-2.10.7,Spark2.0.0. package UDF_UDAF import java.util import o ...

  7. SQL XML示例

    declare @xmlDoc xml,@id varchar(50); set @xmlDoc='<DocObjContent> <NewCtrl Id="0001&qu ...

  8. oracle sql 语句 示例

    --oracle 用户对象的导入导出 exp devimage/oracle@172.xx.x.xx/TESTDB owner='devimage' file=d:/devimage.dmp log= ...

  9. mysql 简单的sql优化示例[不定时更新]

    对于慢sql的分析步骤: 1) desc|explain sql 查看执行计划, 对于type很慢的, 分析是否建立了对应字段的索引 2) 进行排除法, 把子查询抽离出来, 单独执行,定位慢查询是哪个 ...

随机推荐

  1. cocos游戏网址

    http://www.cocos.com/doc/article/index?type=cocos2d-x&url=/doc/cocos-docs-master/manual/framewor ...

  2. unigui session超时时间设置

    unigui session超时时间设置 默认的SESSION超时时间是10分钟. 网络 SOCKET 程序,像 数据库,中间件,UNIGUI等...为了防止过多的僵死连接卡死服务端,服务端都会主动踢 ...

  3. php支持连接sqlserver数据库

    php支持连接sqlserver数据库 1.软件配置 Win7 64 +wampserver2.2d-x32+SQL Server 2008 R2数据库,wamp2.2中的php版本是5.3.10. ...

  4. hdu 1.2.4

    采用异或... #include<stdio.h> int main() { //freopen("input.txt","r",stdin); i ...

  5. java 异步机制与同步机制的区别

    所谓异步输入输出机制,是指在进行输入输出处理时,不必等到输入输出处理完毕才返回.所以异步的同义语是非阻塞(None Blocking). 网上有很多网友用很通俗的比喻  把同步和异步讲解的很透彻 转过 ...

  6. C#把汉字转换成16进制(HEX)并向串口发送数据

    报警器实例:(有发送,无返回获取) using System; using System.Collections.Generic; using System.Linq; using System.Te ...

  7. 混合式应用开发之AngularJS ng-repeat数组有重复值的解决方法

    使用AngularJS ng-repeat遍历数组时,遇到数组里又重复值时会报错.例如数组[1,2,3,3] 官网给了一个解决的方案 <div ng-repeat="value in ...

  8. 背水一战 Windows 10 (62) - 控件(媒体类): InkCanvas 保存和加载, 手写识别

    [源码下载] 背水一战 Windows 10 (62) - 控件(媒体类): InkCanvas 保存和加载, 手写识别 作者:webabcd 介绍背水一战 Windows 10 之 控件(媒体类) ...

  9. Flask系列06--(中间件)Flask的特殊装饰器 before_request,after_request, errorhandler

    一.使用 Flask中的特殊装饰器(中间件)方法常用的有三个 @app.before_request # 在请求进入视图函数之前 @app.after_request # 在请求结束视图函数之后 响应 ...

  10. 28_网络编程-TCP/UDP

    一.传输层       1.定义       IP首部有一个协议字段,用来标识网络层(IP)的上一层所采用的是哪一种传输层协议.根据这个字段的协议号,就可以识别IP传输的数据部分究竟是TCP的内容还是 ...