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()函数的使 ...
随机推荐
- 在Android Studio中使用shareSDK进行社会化分享(图文教程)
[声明] 欢迎转载,但请保留文章原始出处→_→ 生命壹号:http://www.cnblogs.com/smyhvae/ 文章来源:http://www.cnblogs.com/smyhvae/p/4 ...
- Android系列之Fragment(二)----Fragment的生命周期和返回栈
[声明] 欢迎转载,但请保留文章原始出处→_→ 生命壹号:http://www.cnblogs.com/smyhvae/ 文章来源:http://www.cnblogs.com/smyhvae/p/ ...
- AC日记——逃跑的拉尔夫 codevs 1026 (搜索)
1026 逃跑的拉尔夫 时间限制: 1 s 空间限制: 128000 KB 题目等级 : 黄金 Gold 题解 题目描述 Description 年轻的拉尔夫开玩笑地从一 ...
- oracle转Mysql中,varchar2(10)和number应该转换为什么类型?
一. varchar2(10)和number应该转换为什么类型? oracle转成mysql时:varchar2(10)可以转成varchar(10)number则要看oracle中存储的具体是什么类 ...
- java 21 - 9 复制图片的4种方式
需求:复制图片 分析: 因为图片我们用记事本打开后无法读懂,所以用字节流 并且字节流复制有4种方式,所以我们尝试4种方式. 推荐第四种:缓冲字节流一次读取一个字节数组 首先写main方法: publi ...
- Android优化—— Google 发布 Android 性能优化典范
阅读目录 0)Render Performance 1)Understanding Overdraw 2)Understanding VSYNC 3)Tool:Profile GPU Renderin ...
- javascript之享元模式
实现享元模式的一般步骤: 1.将所有外在数据从目标类中剥离.具体做法是尽可能多的删除该类的属性,所删除的应该是那种因实例而异的属性.构造函数的参数也要这样处理,这些参数应该被添加到该类的各个方法. 这 ...
- Gitblit-Git版本服务器环境部署
Gitblit介绍 Gitblit 是一个纯 Java 库用来管理.查看和处理 Git 资料库.相当于 Git 的 Java 管理工具,支持linux系统. Git是分布式版本控制系统,它强调速度.数 ...
- 使用AdapterTypeRender对不同类型的item数据到UI的渲染
要实现聊天功能中的发送不同类型的信息,比如纯文本.图片.语音.图文混排多媒体的数据等(具体效果看微信). 这里使用AdapterTypeRender在BaseTypeAdapter(这个之后会讲到)中 ...
- C语言 百炼成钢14
//题目40:输入3个数a,b,c,按大小顺序输出.(使用指针完成) #include<stdio.h> #include<stdlib.h> //分析:用指针完成,说明不可以 ...