FOPEN 函数 - 打开文件
FOPEN 函数打开文件以执行 I/O。
语法
返回值
此函数返回类型为 UTL_FILE.FILE_TYPE 的值,用于指示已打开文件的句柄。
函数参数
- location
- 类型为 VARCHAR(128) 的输入自变量,用于指定包含该文件的目录的别名。
- filename
- 类型为 VARCHAR(255) 的输入自变量,用于指定该文件的名称。
- open_mode
- 类型为 VARCHAR(10) 的输入自变量,用于指定该文件的打开方式:
- a
- 追加至文件
- r
- 读取文件
- w
- 写至文件
- max_linesize
- 类型为 INTEGER 的可选输入自变量,用于指定行的最大大小(以字符计)。缺省值为 1024 字节。 在读取方式下,如果尝试读取大小超过 max_linesize 的行,那么会抛出异常。在写入和追加方式下,如果尝试写入大小超过 max_linesize 的行,那么会抛出异常。行结束字符不会计入行大小。
权限
对 UTL_FILE 模块的 EXECUTE 特权。
示例
打开文件,将某些文本写至该文件,然后关闭该文件。
SET SERVEROUTPUT ON@
CREATE OR REPLACE PROCEDURE proc1()
BEGIN
DECLARE v_filehandle UTL_FILE.FILE_TYPE;
DECLARE isOpen BOOLEAN;
DECLARE v_dirAlias VARCHAR(50) DEFAULT 'mydir';
DECLARE v_filename VARCHAR(20) DEFAULT 'myfile.csv';
CALL UTL_DIR.CREATE_OR_REPLACE_DIRECTORY('mydir', '/tmp');
SET v_filehandle = UTL_FILE.FOPEN(v_dirAlias,v_filename,'w');
SET isOpen = UTL_FILE.IS_OPEN( v_filehandle );
IF isOpen != TRUE THEN
RETURN -1;
END IF;
CALL DBMS_OUTPUT.PUT_LINE('Opened file: ' || v_filename);
CALL UTL_FILE.PUT_LINE(v_filehandle,'Some text to write to the file.');
CALL UTL_FILE.FCLOSE(v_filehandle);
END@
CALL proc1@此示例生成以下输出。
Opened file: myfile.csv
