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

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

Vue3+TS+Vite开发技巧:如何进行数据加密和存储随着互联网技术的快速发展,数据的安全性和隐私保护变得越来越重要。在Vue3+TS+Vite开发环境下,如何进行数据加密和存储,是每个开发人员都需要面对的问题。本文将介绍一些常用的数据加密和存储的技巧,帮助开发人员提升应用的安全性和用户体验。一、数据加密前端数据加密前端加密是保护数据安全性的重要一环。常用

什么是缓存?缓存(发音为ka·shay)是一种专门的高速硬件或软件组件,用于存储经常请求的数据和指令,这些数据和指令又可用于更快地加载网站、应用程序、服务和系统的其他部分。缓存使最常访问的数据随时可用。缓存文件与缓存内存不同。缓存文件是指经常需要的文件,如PNG、图标、徽标、着色器等,多个程序可能需要这些文件。这些文件存储在您的物理驱动器空间中,通常是隐藏的。另一方面,高速缓存内存是一种比主内存和/或RAM更快的内存类型。它极大地减少了数据访问时间,因为与RAM相比,它更靠近CPU并且速度

如何正确使用sessionStorage存储敏感信息,需要具体代码示例无论是在Web开发还是移动应用开发中,我们常常需要存储和处理敏感信息,如用户登录凭证、身份证号码等。在前端开发中,使用sessionStorage是一种常见的存储方案。然而,由于sessionStorage是基于浏览器的存储,需要注意一些安全性的问题,以确保存储的敏感信息不被恶意访问和利用

PHP和swoole如何实现高效的数据缓存和存储?概述:在Web应用开发中,数据的缓存和存储是非常重要的一部分。而PHP和swoole提供了一种高效的方法来实现数据的缓存与存储。本文将介绍如何使用PHP和swoole来实现高效的数据缓存和存储,并给出相应的代码示例。一、swoole简介:swoole是一个针对PHP语言开发的,高性能的异步网络通信引擎,它可以

本文转载自微信公众号「活在信息时代」,作者活在信息时代。转载本文请联系活在信息时代公众号。对于熟悉数据库操作的同学来说,编写优美的SQL语句,从数据库中想方设法找出自己需要的数据,是常规操作了。而对于熟悉机器学习的同学来说,获取数据,对数据进行预处理,建立模型,确定训练集和测试集,用训练好的模型对未来进行一系列的预测,也是一种常规操作了。那么,我们能否将两种技术结合起来呢?我们看到数据库里存储了数据,而进行预测需要基于以往的数据。如果我们通过数据库里现有的数据,对于未来的数据进行查询的话,那么是

Java集合框架概述Java集合框架是Java编程语言的重要组成部分,它提供了一系列可以存储和管理数据的容器类库。这些容器类库具有不同的数据结构,可以满足不同场景下的数据存储和处理需求。集合框架的优势在于它提供了统一的接口,使得开发人员可以使用相同的方式来操作不同的容器类库,从而降低了开发难度。Java集合框架的数据结构Java集合框架中包含多种数据结构,每种数据结构都有其独特的特性和适用场景。下面是几种常见的Java集合框架数据结构:1.List:List是一个有序的集合,它允许元素重复。Li

使用PHP数组实现数据缓存和存储的方法和技巧随着互联网的发展和数据量的急剧增长,数据缓存和存储成为了我们在开发过程中必须要考虑的问题之一。PHP作为一门广泛应用的编程语言,也提供了丰富的方法和技巧来实现数据缓存和存储。其中,使用PHP数组进行数据缓存和存储是一种简单而高效的方法。一、数据缓存数据缓存的目的是为了减少对数据库或其他外部数据源的访问次数,从而提高


핫 AI 도구

Undresser.AI Undress
사실적인 누드 사진을 만들기 위한 AI 기반 앱

AI Clothes Remover
사진에서 옷을 제거하는 온라인 AI 도구입니다.

Undress AI Tool
무료로 이미지를 벗다

Clothoff.io
AI 옷 제거제

AI Hentai Generator
AI Hentai를 무료로 생성하십시오.

인기 기사

뜨거운 도구

드림위버 CS6
시각적 웹 개발 도구

스튜디오 13.0.1 보내기
강력한 PHP 통합 개발 환경

에디트플러스 중국어 크랙 버전
작은 크기, 구문 강조, 코드 프롬프트 기능을 지원하지 않음

SublimeText3 영어 버전
권장 사항: Win 버전, 코드 프롬프트 지원!

ZendStudio 13.5.1 맥
강력한 PHP 통합 개발 환경
