oracle utl file putf,UTL_FILE包详解(第二篇)
3.4 PUT()
英文解釋:Writes astringtoafile
用法:
utl_file.put(file?IN FILE_TYPE, buffer IN);
函數(shù)原型:
PROCEDURE UTL_FILE.PUT (file IN UTL_FILE.FILE_TYPE, buffer OUT VARCHAR2);
參數(shù)說明:
file由FOPEN返回的文件句柄
buffer包含要寫入文件的數(shù)據(jù)緩存;Oracle8.0.3及以上最大允許32kB,早期版本只有1023B。
UTL_FILE.PUT輸出數(shù)據(jù)時不會附加行終止符。
異常:
UTL_FILE.INVALID_FILEHANDLE
UTL_FILE.INVALID_OPERATION
UTL_FILE.WRITE_ERROR
3.5 NEW_LINE()
英文解釋:Writesoneormoreoperatingsystem-specific line terminatorstoafile
用法:
utl_file.new_line(fileINFILE_TYPE, linesINNATURAL:=1);
UTL_FILE.NEW_LINE
在當前位置輸出新行或行終止符,必須使用NEW_LINE來結束當前行,或者使用PUT_LINE輸出帶有行終止符的完整行數(shù)據(jù)。
函數(shù)原型:
PROCEDURE UTL_FILE.NEW_LINE (file IN UTL_FILE.FILE_TYPE, lines IN NATURAL := 1);
參數(shù)說明:
file由FOPEN返回的文件句柄
lines要插入的行數(shù)
注意:
如果不指定lines參數(shù),NEW_LINE會使用默認值1,在當前行尾換行。如果要插入一個空白行,可以使用以下語句:
UTL_FILE.NEW_LINE (my_file, 2);
如果lines參數(shù)為0或負數(shù),什么都不會寫入文件。
異常:
VALUE_ERROR
UTL_FILE.INVALID_FILEHANDLE
UTL_FILE.INVALID_OPERATION
UTL_FILE.WRITE_ERROR
3.6 PUT_LINE()
英文解釋:Writes a linetoa file.Appends an operatingsystem-specific line terminator
用法:
utl_file.put_line(
file????? IN FILE_TYPE,
buffer??? IN,
autoflush IN);
UTL_FILE.PUT_LINE
輸出一個字符串以及一個與系統(tǒng)有關的行終止符
函數(shù)原型:
PROCEDURE UTL_FILE.PUT_LINE (file IN UTL_FILE.FILE_TYPE, buffer IN VARCHAR2);
參數(shù)說明:
file由FOPEN返回的文件句柄
buffer包含要寫入文件的數(shù)據(jù)緩存;Oracle8.0.3及以上最大允許32kB,早期版本只有1023B
注意:
在調用UTL_FILE.PUT_LINE前,必須先打開文件。
異常:
UTL_FILE.INVALID_FILEHANDLE
UTL_FILE.INVALID_OPERATION
UTL_FILE.WRITE_ERROR
3.7 PUTF()
英文解釋:A PUTprocedurewithformatting
utl_file.putf(
fileINfile_type,
formatINVARCHAR2,
arg1INVARCHAR2DEFAULTNULL,
arg2INVARCHAR2DEFAULTNULL,
arg3INVARCHAR2DEFAULTNULL,
arg4INVARCHAR2DEFAULTNULL,
arg5INVARCHAR2DEFAULTNULL);
UTL_FILE.PUTF
以一個模版樣式輸出至多5個字符串,類似C中的printf
函數(shù)原型:
PROCEDURE UTL_FILE.PUTF
(file IN FILE_TYPE
,format IN VARCHAR2
,arg1 IN VARCHAR2 DEFAULT NULL
,arg2 IN VARCHAR2 DEFAULT NULL
,arg3 IN VARCHAR2 DEFAULT NULL
,arg4 IN VARCHAR2 DEFAULT NULL
,arg5 IN VARCHAR2 DEFAULT NULL);
參數(shù)說明:
file由FOPEN返回的文件句柄
format決定格式的格式串
argN可選的5個參數(shù),最多5個格式串可使用以下樣式
%s在格式串中可以使用最多5個%s,與后面的5個參數(shù)一一對應
%s會被后面的參數(shù)依次填充,如果沒有足夠的參數(shù),%s會被忽視,不被寫入文件
n換行符。在格式串中沒有個數(shù)限制
異常:
UTL_FILE.INVALID_FILEHANDLE
UTL_FILE.INVALID_OPERATION
UTL_FILE.WRITE_ERROR
3.8PUT_RAW()
英文解釋:Acceptsasinput aRAWdatavalueandwritesthevaluetotheoutputbuffer
用法:
utl_file.put_raw(
file????? IN file_type,
buffer??? IN,
autoflush IN);
3.9 FCLOSE()
函數(shù)作用:關閉命名的文件:
utl_file.fclose(file IN OUT file_type);
utl_file.fclose(file IN OUT file_type);
3.10 FCLOSE_ALL()
函數(shù)作用:關閉所有文件
DECLARE
v_outpututl_file.file_type;
vouthandle utl_file.file_type;
BEGIN
v_output:= utl_file.fopen(v_pathna,'test.txt','R');
vouthandle := utl_file.fopen(v_pathna,'out.txt','W');
IFutl_file.is_open(v_output)THEN
utl_file.fclose_all;
dbms_output.put_line('Closed All');
ENDIF;
ENDfopen;
3.11 FRENAME()
英文解釋:RenameAn OperatingSystemFile
utl_file.frename (
src_locationINVARCHAR2,
src_filenameINVARCHAR2,
dest_locationINVARCHAR2,
dest_filenameINVARCHAR2,
overwriteINBOOLEANDEFAULTFALSE);
BEGIN
utl_file.frename(v_pathna,'test.txt',v_pathna,'x.txt',TRUE);
ENDfrename;
/
存儲過程FRENAME修改一個文件的名稱,這樣我們可以把一個文件從一個位置移動到另外一個位置。
函數(shù)原型:
FRENAME(location VARCHAR2,
filename VARCHAR2,
dest_dir VARCHAR2,
dest_file VARCHAR2,
[ overwrite BOOLEAN ])
參數(shù):
location
目錄名稱,存放在pg_catalog.edb_dir.dirname中,這個目錄包含要改名的文件。
filename
要改名的源文件名稱。
dest_dir
目錄名稱,存放在pg_catalog.edb_dir.dirname中,這個目錄是被改名文件所在的目錄。
dest_file
原始文件的新名稱。
overwrite
如果設置為”true”,在dest_dir目錄中覆蓋任何名為dest_file的文件。若設置為”false”,就會產生異常。這是缺省情況。
3.12 FREMOVE()
英文解釋:DeleteAn OperatingSystemFile
utl_file.fremove(locationINVARCHAR2, filenameINVARCHAR2);
-- dump.txt is created in the FCOPY demo
BEGIN
utl_file.fremove(v_pathna,'dump.txt');
ENDfremove;
/
3.13 FFLUSH()
英文解釋:Physically writes pendingdatatothefileidentifiedbythefilehandle
用法:
utl_file.fflush(file IN file_type);
函數(shù)原型:
PROCEDURE UTL_FILE.FFLUSH (file IN UTL_FILE.FILE_TYPE);
參數(shù)說明:
file由FOPEN返回的文件句柄
注意:
操作系統(tǒng)可能會緩存數(shù)據(jù)來提高性能。因此可能調用put后,打開文件卻看不到寫入的數(shù)據(jù)。在關閉文件前要讀取數(shù)據(jù)的話可以使用UTL_FILE.FFLUSH。
典型的使用方法包括分析執(zhí)行進度和調試紀錄。
異常:
UTL_FILE.INVALID_FILEHANDLE
UTL_FILE.INVALID_OPERATION
UTL_FILE.WRITE_ERROR
3.14 FCOPY()
英文解釋:Copies a contiguous portion of a file to a newly created file
utl_file.fcopy(
src_locationINVARCHAR2,
src_filenameINVARCHAR2,
dest_locationINVARCHAR2,
dest_filenameINVARCHAR2,
start_lineINBINARY_INTEGERDEFAULT1,
end_lineINBINARY_INTEGERDEFAULTNULL);
BEGIN
utl_file.fcopy(v_pathna,'test.txt',v_pathna,'dump.txt');
END;
UTL_FILE.FCOPY
存儲過程FCOPY把一個文件中文本拷貝到另外一個文件中。
函數(shù)原型:
FCOPY(location VARCHAR2, filename VARCHAR2,dest_dir VARCHAR2, dest_file VARCHAR2[, start_line PLS_INTEGER [, end_line PLS_INTEGER ] ])
參數(shù)
location
表示目錄名稱,存放在pg_catalog.edb_dir.dirname中,這個目錄包含要拷貝的文件。
filename
要拷貝文件的名稱。
dest_dir
表示目錄名稱,存放在pg_catalog.edb_dir.dirname中,是源文件要拷貝到目的目錄。
dest_file
目標文件的名稱。
start_line
源文件中文本行號,用于指定開始拷貝的位置。缺省值是1。
end_line
源文件中最后一行要拷貝文本的行號。如果省略這個參數(shù)或者這個參數(shù)為空,那么就一直拷貝到文件中最后一行。
總結
以上是生活随笔為你收集整理的oracle utl file putf,UTL_FILE包详解(第二篇)的全部內容,希望文章能夠幫你解決所遇到的問題。