服务器目录配置
1、创建服务器目录
(1)在system用户下执行如下命令:CREATE OR REPLACE DIRECTORY MAIL_FILE_DIR AS ‘/mail_file/data/PROD‘;
(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 :
文件操作无效
原因:在数据库下面没有目录或者目录没有赋读写权限