Oracle utl_file文件写入读取

本文介绍如何使用Oracle的UTL_FILE包进行文件的读取与写入操作。主要内容包括创建服务器目录、设置权限、向指定目录写入文件及读取文件内容等步骤,并提供了具体的PL/SQL代码示例。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

Oracle utl_file文件写入读取


--1、创建服务器目录
(1)在system用户下执行如下命令:CREATE OR REPLACE DIRECTORY MAIL_FILE_DIR AS '/tmp/data/DEV';
(2)给创建的目录赋权限,执行:GRANT read ,write ON DIRECTORY MAIL_FILE_DIR TO PUBLIC;
如果是双节点的服务器,在两个服务器上执行上述sql语句


--2、在数据库服务器上创建/mail_file/data/PROD目录
切换到主目录'/'下执行创建目录命令
目录创建完成后在主目录'/'下执行赋权限命令:chmod 777 /mail_file/data/PROD


--3、向目录下写入文件
DECLARE
    fhandle utl_file.file_type;
BEGIN
    fhandle := utl_file.fopen('MAIL_FILE_DIR'
                             ,'example.txt'
                             ,'w');
    utl_file.put_line(fhandle
                     ,'gh test write one');
    utl_file.put_line(fhandle
                     ,'gh test write two');
    utl_file.fclose(fhandle);
END;


--4、读出文件的内容
DECLARE
    fhandle   utl_file.file_type;
    fp_buffer VARCHAR2(4000);
BEGIN
    fhandle := utl_file.fopen('MAIL_FILE_DIR'
                             ,'example.txt'
                             ,'R');


    utl_file.get_line(fhandle
                     ,fp_buffer);
    dbms_output.put_line(fp_buffer);
    utl_file.get_line(fhandle
                     ,fp_buffer);
    dbms_output.put_line(fp_buffer);
    utl_file.fclose(fhandle);

END;

 

常见报错:
ORA-29283 : 文件操作无效
ORA-06512 : 在"SYS.UTL_FILE", line 449
ORA-29283 : 文件操作无效

错误原因:在数据库下面没有目录或者目录没有赋读写权限

解决办法:先查看文件和路径是哪一步权限不够,然后针对权限重新赋权限。

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

鱼鱼章

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值