Examples
Create a file and write three lines into it:
declare
temp_dir varchar2(266);
begin
dbms_system.get_env('TEMP', temp_dir);
execute immediate 'create directory TMP_DIR as ''' || temp_dir || '''';
end;
/
declare
f utl_file.file_type;
begin
f := utl_file.fopen('TMP_DIR', 'utl_file.test', 'W');
utl_file.put_line(f, 'First line');
utl_file.put_line(f, 'Second line');
utl_file.put_line(f, 'Third line');
utl_file.fclose(f);
end;
/
-- drop directory TMP_DIR;
-- $type %temp%\utl_file.test
Read the file linewise:
declare
f utl_file.file_type;
line varchar2(100);
begin
f := utl_file.fopen('TMP_DIR', 'utl_file.test', 'R');
utl_file.get_line(f, line); dbms_output.put_line(line);
utl_file.get_line(f, line); dbms_output.put_line(line);
utl_file.fclose(f);
end;
/
Read entire file:
declare
f utl_file.file_type;
line varchar2(100);
begin
f := utl_file.fopen('TMP_DIR', 'utl_file.test', 'R');
begin loop
utl_file.get_line(f, line);
dbms_output.put_line(line);
end loop;
exception when no_data_found then
null; -- Last line read read
end;
utl_file.fclose(f);
end;
/
Delete the file
begin
utl_file.fremove('TMP_DIR', 'utl_file.test');
-- Directory not needed anymore:
execute immediate 'drop directory TMP_DIR';
end;
/