PUTF 过程 - 将格式字符串写至文件

PUTF 过程将格式字符串写至指定的文件。

语法

阅读语法图跳过直观语法图UTL_FILE.PUTF (file,format, ,argN)

过程参数

file
类型为 UTL_FILE.FILE_TYPE 的输入自变量,其中包含文件句柄。
format
类型为 VARCHAR(1024) 的输入自变量,用于指定格式化文本时使用的字符串。特殊字符序列 %s 将替换为 argN 的值。特殊字符序列 \n 指示换行。
argN
类型为 VARCHAR(1024) 的可选输入参数,用于指定格式字符串中要替换特殊字符序列 %s 的对应实例的值。最多可指定 5 个参数:arg1arg5arg1 将替换 %s 的第一个实例,arg2 替换 %s 的第二个实例,以此类推。

权限

对 UTL_FILE 模块的 EXECUTE 特权。

示例

格式化职员数据。

SET SERVEROUTPUT ON@

CREATE PROCEDURE proc1()
BEGIN
  DECLARE v_filehandle    UTL_FILE.FILE_TYPE;
  DECLARE v_dirAlias      VARCHAR(50) DEFAULT 'mydir';
  DECLARE v_filename      VARCHAR(20) DEFAULT 'myfile.csv';
  DECLARE v_format        VARCHAR(200);
  SET v_format = '%s %s, %s\nSalary: $%s Commission: $%s\n\n';
  CALL UTL_DIR.CREATE_OR_REPLACE_DIRECTORY('mydir', '/tmp');
  SET v_filehandle = UTL_FILE.FOPEN(v_dirAlias,v_filename,'w');
  CALL UTL_FILE.PUTF(v_filehandle,v_format,'000030','SALLY','KWAN','40175','3214'); 
  CALL DBMS_OUTPUT.PUT_LINE('Wrote to file: ' || v_filename);
  CALL UTL_FILE.FCLOSE(v_filehandle);
END@

CALL proc1@

此示例生成以下输出:

Wrote formatted text to file: myfile.csv

格式化文件 myfile.csv 包含以下数据:

000030 SALLY, KWAN
Salary: $40175 Commission: $3214