UTL_FILE
最近更新时间: 2024-10-17 17:10:00
UTL_FILE包提供文本文件输入和输出功能。
UTL_FILE包含以下接口:
接口 | 描述 |
---|---|
*FOPEN | 用于打开文件 |
IS_OPEN | 用于确定文件是否已经被打开 |
FCLOSE | 用于关闭已经打开的文件 |
FCLOSE_ALL | 该过程用于关闭当前打开的所有文件 |
GET_LINE | 用于从已经打开的文件中读取行内容,行内容会被读取到输出缓冲区 |
GET_NEXTLINE | 用于从已经打开的文件中读取下一条行内容 |
*PUT | 用于将缓冲区内容写入到文件中。当使用PUT过程的时候,文件必须以写方式打开,在写入缓冲区之后,如果要结束行,那么可以使用NEW_LINE过程 |
NEW_LINE | 该过程用于为文件增加行终止符 |
*PUT_LINE | 该过程用于将文本缓冲区内容写入到文件中。当使用该过程为文件追加内容时,会自动在文件的尾部追加行终止符。 |
FFLUSH | 用于将数据强制性写入到文件中,正常情况下,当给文件写入数据的时候,数据会被暂时的放到缓存中。过程FFLUSH用于强制将数据写入到文件中。 |
FREMOVE | 用于删除磁盘文件 |
*FCOPY | 用于将源文件的全部或者部分内容复制到目标文件中。 |
*FRENAME | 该过程用于修改已经存在的文件名字,其作用于UNIX的MV命令完全相同,在修改文件名字的时候,通过指定overwrite参数可以覆盖已经存在的文件 |
FGETATTR | 读取磁盘上的文件并返回文件的属性 |
FRENAME | 将一个存在的文件重命名 |
PUTF | 写入格式化的内容到文件中 |
示例:
create orreplace procedure utlfile_open_prowa() as
declare
v_count int;
v_fileintinteger;
begin
--open_node=w
v_fileint :=utl_file.fopen('/data1/tbasev5_autotest/tbaseTest/TbaseV5/pro_package/data/utl_file_dir','file_w.txt','w');
perform utl_file.put_line(v_fileint,'writefile test.');
if utl_file.is_open(v_fileint) then
perform utl_file.fclose(v_fileint);
end if;
v_fileint :=utl_file.fopen('/data1/tbasev5_autotest/tbaseTest/TbaseV5/pro_package/data/utl_file_dir','file_w.txt','w',50);
perform utl_file.new_line(v_fileint);
perform utl_file.put_line(v_fileint,'一二三四五六七八九十');
if utl_file.is_open(v_fileint) then
perform utl_file.fclose(v_fileint);
end if;
v_fileint :=utl_file.fopen('/data1/tbasev5_autotest/tbaseTest/TbaseV5/pro_package/data/utl_file_dir','file_w.txt','w',18,'SQL_ASCII');
perform utl_file.new_line(v_fileint);
perform utl_file.put_line(v_fileint,'nice tomeet you');
if utl_file.is_open(v_fileint) then
perform utl_file.fclose(v_fileint);
end if;
v_fileint :=utl_file.fopen('/data1/tbasev5_autotest/tbaseTest/TbaseV5/pro_package/data/utl_file_dir','file_w.txt','w',31,'UTF-8');
perform utl_file.new_line(v_fileint);
perform utl_file.put_line(v_fileint,'abcdefghijklmn opq rst uvw xyz');
if utl_file.is_open(v_fileint) then
perform utl_file.fclose(v_fileint);
end if;
v_fileint :=utl_file.fopen('/data1/tbasev5_autotest/tbaseTest/TbaseV5/pro_package/data/utl_file_dir','file_w.txt','w',88,'GBK');
perform utl_file.new_line(v_fileint);
perform utl_file.put_line(v_fileint,'hello');
if utl_file.is_open(v_fileint) then
perform utl_file.fclose(v_fileint);
end if;
--open_mode=a
v_fileint := utl_file.fopen('/data1/tbasev5_autotest/tbaseTest/TbaseV5/pro_package/data/utl_file_dir','file_w.txt','a');
perform utl_file.put_line(v_fileint,'writefile test.');
if utl_file.is_open(v_fileint) then
perform utl_file.fclose(v_fileint);
end if;
v_fileint :=utl_file.fopen('/data1/tbasev5_autotest/tbaseTest/TbaseV5/pro_package/data/utl_file_dir','file_w.txt','a',50);
perform utl_file.new_line(v_fileint);
perform utl_file.put_line(v_fileint,'一二三四五六七八九十');
if utl_file.is_open(v_fileint) then
perform utl_file.fclose(v_fileint);
end if;
v_fileint :=utl_file.fopen('/data1/tbasev5_autotest/tbaseTest/TbaseV5/pro_package/data/utl_file_dir','file_w.txt','a',18,'SQL_ASCII');
perform utl_file.new_line(v_fileint);
perform utl_file.put_line(v_fileint,'nice tomeet you');
if utl_file.is_open(v_fileint) then
perform utl_file.fclose(v_fileint);
end if;
v_fileint :=utl_file.fopen('/data1/tbasev5_autotest/tbaseTest/TbaseV5/pro_package/data/utl_file_dir','file_w.txt','a',31,'UTF-8');
perform utl_file.new_line(v_fileint);
perform utl_file.put_line(v_fileint,'abcdefghijklmn opq rst uvw xyz');
if utl_file.is_open(v_fileint) then
perform utl_file.fclose(v_fileint);
end if;
v_fileint := utl_file.fopen('/data1/tbasev5_autotest/tbaseTest/TbaseV5/pro_package/data/utl_file_dir','file_w.txt','a',88,'GBK');
perform utl_file.new_line(v_fileint);
perform utl_file.put_line(v_fileint,'hello');
if utl_file.is_open(v_fileint) then
perform utl_file.fclose(v_fileint);
end if;
exception
when others then
raise notice 'EXP: something wrong.';
end;
/
callutlfile_open_prowa();