博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
PLSQL 操作 ORACLE 服务器上的文件
阅读量:5745 次
发布时间:2019-06-18

本文共 1703 字,大约阅读时间需要 5 分钟。

 

    在做oracle plsql 编程的时候,难免要对文件进行操作,如读取oracle服务器上的别的目录下的数据文件,导入到oracle库中;虽然在plsql developer工具中提供了debug功能,但当有输出时,debug的控制台不能及时看到,除非停止debug。如果在plsql程序中输出日志信息到文件中,使得plsql程序调试、运行跟中更加方便,因为大家都知道日志的作用是什么。

 

下面讲讲怎么在oracleplsql程序中写入日志到oracle服务器的文件中。虽然我们是用plsql developer开发和运行plsql程序,但是plsql developer经常是安装在远程计算机上,这里说的操作文件,是指plsql操作oracle dbms所在的服务器上,如果oracle安装在linux系统,则是操作linux上的文件;安装在windows上,则是操作windows上的文件,对于本次演示前者会相对麻烦些,后者容易些。因为我用的oracle安装在linux上,所以以linux系统为例讲解。

注:“--”表示注释行

 

 

 一、建立存放日志文件的目录。

 1.root权限登录linux系统。

 2.创建一个目录存放日志文件。

 # mkdir /home/oracle/plog

 

 3.进入/home/oracle/,赋予oracle用户对plog目录读写权限

 # chown oracle plog

 

 4.检验oracle用户是否对该目录有读写权限,切换到oracle用户下

 # su oracle $ cd plog $ touck plsql.log        

 

 -- 这里是创建一个文件的意思,如果没有权限,则创建失败并提示。

 -- 如果创建成功,则说明权限授权成功,我们可以把plsql.log删除

 $ rm plsql.log,这个随便。

 

 

 二、介绍plsql程序中操作文件,oracle提供 utl_file 包是专门用来操作磁盘上的文件。

 1.需要创建一个directory对象

 SQL>create or replace directory plog_dir as'/home/oracle/plog';  

 

 2.sys用户登录plsql developer,给运行plsql的程序用户授权对该目录可写、可读的权限;对 utl_file 有可执行的权限。

 SQL>grant read,write on directory plog_dir to scott;  

 

 SQL>GRANT EXECUTEON utl_file TO scott;--scott是登录oracle数据库的一个用户。

 3.编写一个写入日志的存储过程。 

 

 

createorreplaceprocedure logger

 

(

    v_file_name invarchar2,--存放日志文件名

    v_log_msg invarchar2--日志消息

)

 

 

is

    v_file_handle utl_file.file_type;--声明一个文件操作句柄   

 

begin

    v_file_handle:=utl_file.fopen('PLOG_DIR',v_file_name,'a');--实例化一个句柄

    utl_file.put_line(v_file_handle,v_log_msg);--写入信息

    utl_file.fflush(v_file_handle);--把缓冲区的信息写入文件

    utl_file.fclose(v_file_handle);    --关闭文件句柄

 

exception

 

    whenothersthen

        dbms_output.put_line('插入日志异常,错误代码是:'||sqlcode||'错误消息是:'||sqlerrm);

end;

 

  注:1.'PLOG_DIR'directory,必须大写2.'a'是在日志文件后追加信息 

三、在需要写入日志的地方调用该存储过程,就可以了。

  execute logger('wt.txt','this is a testing for plsql writer !');   

 

转载地址:http://hdxzx.baihongyu.com/

你可能感兴趣的文章
PowerShell 2.0 实践(五)管理Windows注册表
查看>>
怎样设计才能让文字排版更好看(一)
查看>>
java多线程-简单的卖票程序
查看>>
Linux/Unix mpstat command
查看>>
bootstrap-datetimepicker 获取时间
查看>>
flink读取kafka数据并写入HDFS
查看>>
监控主机网卡流量
查看>>
ceph的pg分布
查看>>
how to set yum proxy server
查看>>
Linux Bash脚本练习2
查看>>
李彦宏:百度需要从这七点开始改变!
查看>>
关于QTableWidgetItem::setItemPrototype的理解
查看>>
IOS 手势之左右滑动
查看>>
Redis实现分布式锁的几种方案
查看>>
一文详解Linux系统常用监控工具
查看>>
我的友情链接
查看>>
Window上python开发--4.Django的用户登录模块User
查看>>
我的友情链接
查看>>
我的友情链接
查看>>
Linux实用逻辑卷之建立LVM
查看>>