UTL_FILE Package 在Oracle9i 以后的版本中,可以通过CREATE DIRECTORY 的方式,对用户,读写权限等作限制,而且可以在运行时动态增加可以进行文件操作的目录,而无需重新启动Oracle服务,以下说明:
1.文件操作目录的设定
CREATE DIRECTORY recv_area AS '???' ;
CREATE DIRECTORY send_area AS '???' ;
需要CREATE DIRECTORY 的权限
2.目录的操作权限设定
GRANT READ ON DIRECTORY recv_area TO user_name;
GRANT WRITE ON DIRECTORY send_area TO user_name;
3.确认目录设置信息
SELECT * FROM ALL_DIRECTORIES;
4.写入文件示例
CREATE OR REPLACE PROCEDURE CREATE_DIR_WRITE_SAMPLE
AS
vHandle UTL_FILE.FILE_TYPE;
vDirname Varchar2(250);
vFilename Varchar2(250);
vOutput Varchar2(32767);
BEGIN
vDirname := 'SEND_AREA'; --大写的目录定义名
vFilename:='test.txt';
vHandle := UTL_FILE.FOPEN(vDirname,vFilename,'w',32767);
vOutput := '???';
UTL_FILE.PUT_LINE(vHandle,vOutput);
UTL_FILE.FCLOSE(vHandle);
END;
/