ORACLE PL/SQL 利用自治事务实现日志记录
发表于:2025-01-27 作者:千家信息网编辑
千家信息网最后更新 2025年01月27日,程序中通常都要实现日志记录功能,尤其是事务发生报错时的错误日志。如果把日志记录在数据库中,可以方便后续的查询和分析。但是如果直接把记录日志的共能写在事务中,如果事务发生ROLLBACK,记录的日志也会
千家信息网最后更新 2025年01月27日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安全错误
数据库的锁怎样保障安全
网络安全管理工作面临
魔兽世界 服务器不兼容
上位机软件开发自学
安徽统一软件开发有哪些
无线网络技术教程第三版
洛阳银行软件开发招聘
ai调试程序bug删除数据库
云服务器s2
小学国家网络安全教育主题班会
安全服务器有什么用
网络安全模型怎么设置
如何理解网络安全和信息化的关系
厉害的软件开发
网络技术课总结
网络安全自查工作方案总结
数控技术是软件开发吗
oracle数据库书籍
三级网络技术教程2016
sql数据库服务端地址
检测到一个数据库出现一致性问题
做传奇用什么配置的服务器
事业单位网络安全吗
安卓子菜单功能数据库
华南邓判网络技术有限公司
安全服务器有什么用
yii2 数据库前缀
厉害的软件开发
怎么样查询数据库
组网与网络安全计算题
电信卡网络连接不到服务器