oracle utl file putf,UTL_FILE学习
UTL_FILE文件操作包:
1,UTL_FILE.FOPEN(location?in?varchar2,filename?in?varchar2,open_mode?in?varchar2)
location?路徑
FILENAME?文件名
OPEN_MODE?打開模式:R?讀,W?寫,A?附加文本,如果文件不存在,會用W先創建出來,W有覆蓋功能,其中location并不能簡單的指定為'D:/temp'等路徑,需要建立一個directory變量并付給用戶權限:
創建directory
create?or?replace?directory?testfile?as?'/home/oracle/user1/test';
給用戶授權
grant?read,write?on?directory?testfile?to?user1;
grant?execute?on?utl_file?to?user1;
然后就可以用UTL_FILE包建立文件了:
v_file?utl_file.file_type;????句柄
v_file?:=?utl_file.fopen('dir','filename','w');
2,utl_file.is_open?如果文件句柄指定的文件已打開,返回TRUE,否則FALSE
FUNCTION?UTL_FILE.IS_OPEN(FILE?IN?UTL_FILE.FILE_TYPE)?RETURN?BOOLEAN;
UTL_FILE只提供一個方法去讀取數據:GET_LINE
3,UTL_FILE.GET_LINE??讀取指定文件的一行到提供的緩存
PROCEDUREUTL_FILE.GET_LINE
(FILE?IN?UTL_FILE.FILE_TYPE,
BUFFER?OUT?VARCHAR2);
FILE?由FOPEN返回的文件句柄??buffer?讀取的一行數據的存放緩存,buffer必須足夠大,否則,會出現VALUE_ERROR異常,行終止符不被傳進BUFFER。
4UTL_FILE.PUT???在當前行輸出數據
PROCEDURE?UTL_FILE.PUT
(FILE?IN?UTL_FILE.FILE_TYPE,
BUFFER?OUT?VARCHAR2);
5,UTL_FILE.NEW_LINE?在當前位置輸出新行或行終止符,必須使用NEW_LINE來結束當前行,或者使用PUT_LINE輸出帶有終止符的完整行數據。
PROCEDURE?UTL_FILE.NEW_LINE
(FILE?IN?UTL_FILE.FILE_TYPE,
LINES?IN?NATURAL:=1);
FILE?由FOPEN返回的文件句柄
lines?要插入的行數,如果不指定LINES參數,NEW_LINE會只用默認值1,如果要插入空白行,可以使用:UTL_FILE.NEW_LINE(my_file,2);如果參數為0或者負數,什么都不會寫入文本。
6,utl_file.put_line?輸出一個字符串以及一個與系統有關的終止符
procedure?utl_file.put_line
(file?in?utl_file.file_type,
buffer?in?varchar2);
在調用utl_file.put_line前,必須先打開文件。
PUT_LINE相當于PUT后面加上NEW_LINE;也想當于putf的格式串“%s/n”.
7,utl_file.putf?以一個模板式輸出至多5個字符串,類似C中的printf
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);
%s?在格式串中可以使用最多5個%s,與后面的5個參數已一一對應。
%n?換行符。
8,utl_file.fflush??確保所有數據寫入文件。
procedure?utl_file.fflush(file?in?utl_file.file_type);
9,utl_file.fclose?關閉文件
procedure?utl_file.fclose(file?in?out?file_type);
utl_file.fclose_all?關閉所有已打開的文件
procedure?utl_file.fclose_all;
在結束程序時可以使用fclose_all也可以在exception使用,當異常退出時,文件也會被關閉
exception
when?others
then
utl_file.fclose_all;
...other?clean?up?activities...
end;
總結
以上是生活随笔為你收集整理的oracle utl file putf,UTL_FILE学习的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: AI_图像标注:图像标注简介
- 下一篇: 双指针法总结之倚天屠龙