存储过程运行日志记录通用模块
目标 实现记录执行存储过程的开始时间,结束时间,运行状态,错误信息等,以函数封装日志记录的方式,存储调用函数 源码 存储过程模版 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) )

热AI工具

Undresser.AI Undress
人工智能驱动的应用程序,用于创建逼真的裸体照片

AI Clothes Remover
用于从照片中去除衣服的在线人工智能工具。

Undress AI Tool
免费脱衣服图片

Clothoff.io
AI脱衣机

AI Hentai Generator
免费生成ai无尽的。

热门文章

热工具

记事本++7.3.1
好用且免费的代码编辑器

SublimeText3汉化版
中文版,非常好用

禅工作室 13.0.1
功能强大的PHP集成开发环境

Dreamweaver CS6
视觉化网页开发工具

SublimeText3 Mac版
神级代码编辑软件(SublimeText3)

热门话题

拼多多软件内提供的商品好物非常多,随时随地想买就买,而且每一件商品质量都是严格把关的,件件商品都是正品,不同还有非常多优惠的购物折扣,让大家网购根本停不下来。输入手机号在线登录,在线添加多个收货地址和联系方式,可以随时查看最新的物流动态,不同品类的商品板块都是开放的,搜索上下滑动选购下单,足不出户轻松体验便捷的网购服务,还能查看所有的购买记录,包括自己买过的商品,数十个购物红包、优惠券免费领取使用,现在小编在线详细为拼多多用户们带来查看买过的商品记录的方法。 1.打开手机,点击拼多多图标,

如何在Linux系统中执行.sh文件?在Linux系统中,.sh文件是一种被称为Shell脚本的文件,用于执行一系列的命令。执行.sh文件是非常常见的操作,本文将介绍如何在Linux系统中执行.sh文件,并提供具体的代码示例。方法一:使用绝对路径执行.sh文件要在Linux系统中执行一个.sh文件,可以使用绝对路径来指定该文件的位置。以下是具体的步骤:打开终

华为手机如何实现双微信登录?随着社交媒体的兴起,微信已经成为人们日常生活中不可或缺的沟通工具之一。然而,许多人可能会遇到一个问题:在同一部手机上同时登录多个微信账号。对于华为手机用户来说,实现双微信登录并不困难,本文将介绍华为手机如何实现双微信登录的方法。首先,华为手机自带的EMUI系统提供了一个很便利的功能——应用双开。通过应用双开功能,用户可以在手机上同

本站3月7日消息,华为数据存储产品线总裁周跃峰博士日前出席MWC2024大会,专门展示了为温数据(WarmData)和冷数据(ColdData)设计的新一代OceanStorArctic磁电存储解决方案。华为数据存储产品线总裁周跃峰发布系列创新解决方案图源:华为本站附上华为官方新闻稿内容如下:该方案的成本比磁带低20%,功耗比硬盘低90%。根据国外科技媒体blocksandfiles报道,华为发言人还透露了关于该磁电存储解决方案的信息:华为的磁电磁盘(MED)是对磁存储介质的重大创新。第一代ME

大家知道matlab怎么运行m文件吗?下文小编就带来了matlab运行m文件的方法教程,希望对大家能够有所帮助,一起跟着小编来学习一下吧!1、首先打开matlab软件,选择左上角的“打开”,如下图所示。2、然后选择要运行的m文件,并且打开,如下图所示。3、在窗口按F5来运行程序,如下图所示。4、我们可以在命令行窗口和工作区看运行结果,如下图所示。5、直接点击“运行”也可以运行文件,如下图所示。6、最后可以在命令行窗口和工作区看m文件的运行结果,如下图所示。上面就是小编为大家带来的matlab怎么

编程语言PHP是一种用于Web开发的强大工具,能够支持多种不同的编程逻辑和算法。其中,实现斐波那契数列是一个常见且经典的编程问题。在这篇文章中,将介绍如何使用PHP编程语言来实现斐波那契数列的方法,并附上具体的代码示例。斐波那契数列是一个数学上的序列,其定义如下:数列的第一个和第二个元素为1,从第三个元素开始,每个元素的值等于前两个元素的和。数列的前几个元

如何在华为手机上实现微信分身功能随着社交软件的普及和人们对隐私安全的日益重视,微信分身功能逐渐成为人们关注的焦点。微信分身功能可以帮助用户在同一台手机上同时登录多个微信账号,方便管理和使用。在华为手机上实现微信分身功能并不困难,只需要按照以下步骤操作即可。第一步:确保手机系统版本和微信版本符合要求首先,确保你的华为手机系统版本已更新到最新版本,以及微信App

在Linux系统中,可以使用以下命令来查看日志文件的内容:tail命令:tail命令用于显示日志文件的末尾内容。它是查看最新日志信息的常用命令。tail[选项][文件名]常用的选项包括:-n:指定要显示的行数,默认为10行。-f:实时监视文件内容,并在文件更新时自动显示新的内容。示例:tail-n20logfile.txt#显示logfile.txt文件的最后20行内容tail-flogfile.txt#实时监视logfile.txt文件的更新内容head命令:head命令用于显示日志文件的开头
