Oracle利用UTL_FILE记录日志功能

Oracle利用UTL_FILE记录日志功能

1.功能描述

采用UTL_FILE包的功能进行创建log文件以及输出log信息

2.关于UTL_FILE

Oracle提供的文件操作包UTL_FILE包中的UTL_FILE.FOPEN负责打开一个文件。

sql 复制代码
UTL_FILE.FOPEN(location in varchar2, filename in varchar2, open_mode in varchar2) return FILE_TYPE;

Location 是路径参数;

FILENAME 是文件名;

OPEN_MODE是打开模式,'R'是读文本,'W'是写文本,'A'是附加文本,参数不分大小写,如果指定'A'但是文件不存在,它会用'W'先创建出来,'W'有覆盖的功能;

其中的location并不能简单的指定为'D:\temp'等路径,要建立一个DIRECTORY变量并付给权限(必须以DBA身份登录):

sql 复制代码
create or replace directory D_OUTPUT as 'D:\TEMP';
grant read, write on directory D_OUTPUT to public;

注:如上述代码所示,在D盘需要手动创建命名为TEMP的文件夹,执行上述代码,并不会自动创建相关文件夹,上述代码在于定义,并赋予该定义的权限,此处是public

之后就可以用UTL_FILE包建立文件了:

sql 复制代码
FILE_HANDLE := UTL_FILE.FOPEN('D_OUTPUT', 'log.txt', 'A');

写文件以及关闭:

sql 复制代码
UTL_FILE.put_line(FILE_HANDLE, write_string); 
UTL_FILE.FCLOSE(FILE_HANDLE);

完整代码如下:

sql 复制代码
CREATE OR REPLACE Procedure log_write_Info (name_string In Varchar2,dispaly_string In Varchar2)
As
 FILE_HANDLE UTL_FILE.FILE_TYPE;
 pro_date date;
Begin
  select sysdate into pro_date from dual;
   FILE_HANDLE := UTL_FILE.FOPEN('D_OUTPUT', name_string||'-'||to_char(pro_date,'yyyy-mm-dd')||'-log.txt', 'A');
  UTL_FILE.put_line(FILE_HANDLE,to_char(sysdate,'yyyy-mm-dd hh24:mi:ss')||'--------'||dispaly_string); 
 
  UTL_FILE.FCLOSE(FILE_HANDLE);
End log_write_Info;

3.调用存储过程写日志

sql 复制代码
begin

   log_write_Info('调试','111');--procedure是存储过程名

end;

效果:

相关推荐
码云骑士12 分钟前
Redis 入门实战:从 NoSQL 概念到安装与基础操作详解(一)
数据库·redis·缓存
YL2004042612 分钟前
MySQL-进阶篇-锁
数据库·mysql
爱喝水的鱼丶21 分钟前
SAP-ABAP:数据类型与数据对象(8篇) 第七篇:进阶优化篇——基于类型与对象特征的性能优化技巧
运维·数据库·学习·性能优化·sap·abap·开发交流
SelectDB技术团队25 分钟前
PB 级自动驾驶数据秒级检索:Apache Doris 统一多模态数据平台实践
数据库·人工智能·自动驾驶·apache doris·selectdb
爱编程的小新☆36 分钟前
LangGraph4j工作流框架
前端·数据库·ai·langchain·langgraph4j
programhelp_1 小时前
Google 2026 New Grad SDE VO 三轮面试详解 | 含Behavioral、Coding、Design
java·服务器·数据库
czhc11400756631 小时前
数据库520 HALCONAN安装
数据库
阿坤带你走近大数据1 小时前
Oracle中的OGG介绍
数据库·oracle
Ether IC Verifier1 小时前
TCP/IP协议握手原理详解——结合以太网连接过程
服务器·网络·数据库·网络协议·tcp/ip
宋浮檀s1 小时前
SQL注入基础+DVWA搭建
数据库·sql·安全·网络安全