ORACLE PL/SQL 利用自治事务实现日志记录
发表于:2025-02-16 作者:千家信息网编辑
千家信息网最后更新 2025年02月16日,程序中通常都要实现日志记录功能,尤其是事务发生报错时的错误日志。如果把日志记录在数据库中,可以方便后续的查询和分析。但是如果直接把记录日志的共能写在事务中,如果事务发生ROLLBACK,记录的日志也会
千家信息网最后更新 2025年02月16日ORACLE PL/SQL 利用自治事务实现日志记录程序中通常都要实现日志记录功能,尤其是事务发生报错时的错误日志。如果把日志记录在数据库中,可以方便后续的查询和分析。但是如果直接把记录日志的共能写在事务中,如果事务发生ROLLBACK,记录的日志也会发生ROLLBACK,明显时不合适的。但是使用自治事务可以很方便的实现日志记录功能,并且不会受主事务的影响。下面实现一个简单的日志记录例子。
1. 创建日志记录表
创建日志包可以方便统一管理日志记录,并且可以实现自治事务。
log package 包含两个procedure:putline和saveline,putline实现日志插入,saveline时一个自治事务,调用putline。在程序中记录日志时可以直接调用saveline实现。
选择一个不存在的数据,查看logtab里的记录
1. 创建日志记录表
点击(此处)折叠或打开
- create table logtab (
- code integer,
- text varchar2(4000),
- created_on date,
- created_by varchar2(50),
- changed_on date,
- changed_by varchar2(50)
- );
创建日志包可以方便统一管理日志记录,并且可以实现自治事务。
log package 包含两个procedure:putline和saveline,putline实现日志插入,saveline时一个自治事务,调用putline。在程序中记录日志时可以直接调用saveline实现。
点击(此处)折叠或打开
- create or replace package log
- is
- procedure putline(code_in in integer, text_in in varchar2);
- procedure saveline(code_in in integer, text_in in varchar2);
- end log;
- /
- create or replace package body log
- is
- procedure putline(
- code_in in integer,text_in in varchar2)
- is
- begin
- insert into logtab
- values(code_in,text_in,sysdate,user,sysdate,user);
- end;
- procedure saveline(
- code_in in integer,text_in in varchar2)
- is
- pragma autonomous_transaction;
- begin
- putline(code_in, text_in);
- commit;
- exception when others then rollback;
- end;
- end log;
- /
选择一个不存在的数据,查看logtab里的记录
点击(此处)折叠或打开
- declare
- sal pls_integer;
- begin
- select salary into sal from employees where employee_id = 11111;
- exception
- when others
- then sys.log.saveline(sqlcode,sqlerrm);
- end;
- /
点击(此处)折叠或打开
- select * from logtab;
- CODE TEXT CREATED_O CREATE_BY CHANGE_ON CHANGE_BY
- ---------- ------------------------------ --------- ---------- --------- ----------
- 100 ORA-01403: no data found 10-JUN-18 SYS 10-JUN-18 SYS
日志
事务
自治
例子
功能
数据
程序
合适
明显
两个
数据库
记录表
错误
分析
影响
查询
管理
统一
选择
数据库的安全要保护哪些东西
数据库安全各自的含义是什么
生产安全数据库录入
数据库的安全性及管理
数据库安全策略包含哪些
海淀数据库安全审计系统
建立农村房屋安全信息数据库
易用的数据库客户端支持安全管理
连接数据库失败ssl安全错误
数据库的锁怎样保障安全
数据库职工
国内服务器硬盘分区
永恒无间哪个服务器比较好
虚拟服务器集群技术
网络上网络安全初级证好考不
rust 访问数据库
软件技术企业应用软件开发
哈工程网络安全大概多少分数
cs包括数据库
在数据库中什么是事物处理
网络安全工程师招聘要求
服务器允许程序运行
互联网科技公司上海文科招聘
数据库国家安全
加密机 数据库
做网络技术工程师
沈阳软件开发的大公司
天影视通 定时播放服务器
生产计划软件开发
办公室网络安全检查自查报告
linux服务器如何编辑文件
软件开发没有基础可以学吗
如何防止高并发修改数据库
网络安全调查报告及结果
怎么让服务器联机
网络安全工程师职场体验
朗新科技与工业互联网
仟叶杯计算机网络技术大赛
阿里巴巴服务器
如何培养孩子网络安全知识