ORACLE PL/SQL 利用自治事务实现日志记录
发表于:2025-11-07 作者:千家信息网编辑
千家信息网最后更新 2025年11月07日,程序中通常都要实现日志记录功能,尤其是事务发生报错时的错误日志。如果把日志记录在数据库中,可以方便后续的查询和分析。但是如果直接把记录日志的共能写在事务中,如果事务发生ROLLBACK,记录的日志也会
千家信息网最后更新 2025年11月07日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安全错误
数据库的锁怎样保障安全
中专计算机和网络技术哪个好
人力资源系统软件开发商
识别手机里的数据库
2022网络安全攻防演练
怎么备份一加手机手机数据库
非规范化数据库
软件开发创业成功率
数据库查找相似数据
一个淘淘商城软件开发多久
东营联想服务器代理销售电话
戴尔服务器安装win7
暴雪战网如何进入俄罗斯服务器
清华软件开发 教授
关于节假日网络安全值班的通知
服务器开机 显示继续使用
服务器有必要安装安全软件吗
抚顺一手网络技术公司
什么行业服务器最多
数据库 多对多
吉安游戏软件开发在线咨询
社区网络安全宣传日进校园
网络安全活动周图片
数据库最新开源
服务器会翻墙吗
软件开发为啥学不懂
顺丰数据库故障
c# 读取数据库一行数据
关于互联网科技文章
数据库的结构文件类型分为哪几类
要狠抓网络安全责任落