Oracle写函数读写日志实例
1、用DBA登录赋权限
create or replace directory D_OUTPUT as 'D:\TEMP';
grant read,write on directory D_OUTPUT to testdb;
GRANT EXECUTE ON utl_file TO testdb;
2、写一个函数创建目录并写入数据
在数据清洗的存储过程中调用函数
首先在上边声明变量
xx varchar2(1000);
然后在执行插入失败的下面调用函数
else
--insert into fail_log(XH,proc_mc,title,content,log_type,log_time) values
(FAIL_LOG_SEQ.NEXTVAL,'pro_TXZ_ROAD_PLAN','数据插入失败',c_YAID_t,'ERROR',sysdate);
dbms_output.put_line('通行证预案表YAID为' || c_YAID_t || '的数据已经存在');
xx :=cux_my(TO_CHAR(SYSDATE(),'YYYY-MM-DD HH24:MI:SS')||'===>' || '通行证预案表YAID为' || c_YAID_t || '的数据插入
失败');
______________________________创建日志_______________________________________
-- name 表名称 code 传入数据、失败数据
--存储过程失败情况调用 命名修改有点意义
create or replace function cux_my(name VARCHAR2,code VARCHAR2)
RETURN VARCHAR2 is
filehandle utl_file.file_type; --句柄
a varchar2(100);
begin
a:=TO_CHAR(SYSDATE(),'YYMMDDHH24MISS'); -- 时间格式
filehandle := utl_file.fopen('D_OUTPUT',name||a || '.txt','a'); --打开文件
utl_file.put_line(filehandle,code );--写入一行记录
--dbms_output.put_line('1');
utl_file.fclose(filehandle);--关闭句柄
return 'OK';
end;
_____________________________________________________________________
______________________________读取日志_______________________________________
1:-- 当建表方法 需要用这个 读取日志文件 根据 文件名称
-- 此时的filename 是 java 代码调用函数 传入的文件名称,此名称命名方式 一定 一定 要和创建日志 规范一致
create or replace function shuchu(filename VARCHAR2)
RETURN VARCHAR2 is
filehandle utl_file.file_type;
filebuffer varchar(200);
BEGIN
filehandle := utl_file.fopen('D_OUTPUT',filename || '.txt','r');
loop
begin
utl_file.get_line(filehandle,filebuffer);
-- insert into t values('',filename,filebuffer,filebuffer); 向新建的表中 插入读取的日志数据
dbms_output.put_line(filebuffer);
EXCEPTION
WHEN no_data_found THEN
exit ;
End;
END LOOP;
utl_file.fclose(filehandle);
COMMIT;
return 'OK'; --此时 返回可以任意
END;
2,-- 当不需要建表的时候
-- 此时的filename 是 java 代码调用函数 传入的文件名称,此名称命名方式 一定 一定 要和创建日志 规范一致
create or replace function shuchu(filename VARCHAR2)
RETURN VARCHAR2 is
filehandle utl_file.file_type;
filebuffer varchar(200);
BEGIN
filehandle := utl_file.fopen('D_OUTPUT', '160508235600.txt','r');
loop
begin
utl_file.get_line(filehandle,filebuffer);
dbms_output.put_line(filebuffer);
EXCEPTION
WHEN no_data_found THEN
exit ;
End;
END LOOP;
utl_file.fclose(filehandle);
COMMIT;
return filebuffer; --此时 返回值 是读取的日志数据
END;
_____________________________________________________________________
Oracle写函数读写日志实例的更多相关文章
- 【转】Oracle 自定义函数语法与实例
原文地址:https://blog.csdn.net/libertine1993/article/details/47264211 Oracle自定义函数的语法如下: create or replac ...
- ORACLE 监听日志文件太大停止写监听日志引起数据库连接不上问题
生产库监听日志文件太大(达到4G多),发现oracle停止写监听日志,检查参数log_file,log_directory,log_status 均正常,数据库运行也正常. 经确认确实为监听日志过大引 ...
- Oracle排名函数(Rank)实例详解
这篇文章主要介绍了Oracle排名函数(Rank)实例详解,需要的朋友可以参考下 --已知:两种排名方式(分区和不分区):使用和不使用partition --两种计算方式(连续,不连续),对应 ...
- 创建多个Oracle数据库及相应的实例
转 http://blog.csdn.net/luiseradl/article/details/6972217 对于使用过SQL Server数据库的用户可以会对Oracle中的数据库的实例的概念理 ...
- Oracle自定义函数和存储过程示例,自定义函数与存储过程区别
参考资料:http://www.newbooks.com.cn/info/60861.html oracle自定义函数学习和连接运算符(||) 贴一段中文文档示例,应该就可以开始工作了: --过程(P ...
- oracle数据库的导入 导出实例
oracle数据库的导入 导出实例 分类: DataBase2011-09-07 23:25 377人阅读 评论(0) 收藏 举报 数据库oraclefileusercmdservice 我要从另外一 ...
- VC 使用msxml6.dll动态链接库中的函数读写XML文件
VC 使用msxml6.dll动态链接库中的函数读写XML文件 目录 1 引言 2 .dll使用方法 3 常用函数总结 4 实例应用 5 运行效果预览 6 补充说明 7 不足之处 8 更新 引言: ...
- flask实战-个人博客-使用工厂函数创建程序实例 --
使用工厂函数创建程序实例 使用蓝本还有一个重要的好处,那就是允许使用工厂函数来创建程序实例.在OOP(Object-Oriented Programming,面向对象编程)中,工厂(factory)是 ...
- Oracle常用函数
前一段时间学习Oracle 时做的学习笔记,整理了一下,下面是分享的Oracle常用函数的部分笔记,以后还会分享其他部分的笔记,请大家批评指正. 1.Oracle 数据库中的to_date()函数的使 ...
随机推荐
- MonoDevelop Debug Unity
环境 Unity 4.3.x MonoDevelop 4.0.1 资料 更新Unity4.3.X之后的版本,MonoDevelop的版本也进行了升级,IDE的界面发生了比较大的改变. 查阅了Unity ...
- RecyclerView (一) 基础知识
RecyclerView是什么? RecyclerView是一种新的视图组,目标是为任何基于适配器的视图提供相似的渲染方式.它被作为ListView和GridView控件的继承者,在最新的suppor ...
- Android service ( 一 ) 三种开启服务方法
一. Service简介 Service是android 系统中的四大组件之一(Activity.Service.BroadcastReceiver.ContentProvider),它跟 Activ ...
- Nginx反向代理+负载均衡简单实现(https方式)
背景:A服务器(192.168.1.8)作为nginx代理服务器B服务器(192.168.1.150)作为后端真实服务器 现在需要访问https://testwww.huanqiu.com请求时从A服 ...
- f2fs解析(四)f2fs的extent特性
extent的意思是“程度”,但是我还是搞不清楚要如何把“程度”和我理解的extent联系到一起. 文件的偏移和page-cache的映射关系体现在address space 中的一颗基数树上:当基数 ...
- 类图和对象图教程-类(Class)、接口(Interface)、协作(collaboration)、依赖关系(Dependency)、泛化关系(Generalization)、关联关系(Association)以及实现关系(Realization)
类图的概念 (转) 一.概述 类图(Class Diagram)是描述类.接口.协作以及它们之间关系的图,用来显示系统中各个类的静态结构.类图是定义其他图的基础,在类图基础上,可以使用状态图.协作图. ...
- C语言 函数理解(以数组做参数)
#define _CRT_SECURE_NO_WARNINGS #include<stdio.h> #include<stdlib.h> int run(int *p){ // ...
- BigDecimal 使用方法详解
BigDecimal 使用方法详解 博客分类: java基础 bigdecimalmultiplyadddivide BigDecimal 由任意精度的整数非标度值 和 32 位的整数标度 (sca ...
- 流媒体技术之RTSP
流媒体技术之RTSP 标签: RTSP技术移动流媒体 2016-06-19 18:48 38人阅读 评论(0) 收藏 举报 分类: 流媒体相关技术 版权声明:本文为博主原创文章,未经博主允许不得转载 ...
- 《Linux内核设计与实现》Chapter 3 读书笔记
<Linux内核设计与实现>Chapter 3 读书笔记 进程管理是所有操作系统的心脏所在. 一.进程 1.进程就是处于执行期的程序以及它所包含的资源的总称. 2.线程是在进程中活动的对象 ...