服务器目录配置
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
: 文件操作无效
原因:在数据库下面没有目录或者目录没有赋读写权限