Я работаю в небольшой процедуре, которая должна прочитать файл и проверить, является ли файл пустым или не существует. Проверка работает, но я попытался реализовать чтение и выдает следующую ошибку:
ORA-29284: file read error
ORA-06512: at "SYS.UTL_FILE", line 106
ORA-06512: at "SYS.UTL_FILE", line 746
ORA-06512: at "HCM_ESTRUCTURES", line 23
ORA-06512: at line 3
Мой код:
CREATE OR REPLACE PROCEDURE hcm_estructures AS
/*-Files validation variables-*/
l_file_exists BOOLEAN;
l_file_len NUMBER;
l_blocksize BINARY_INTEGER;
/*Variables read file*/
v_archivo utl_file.file_type;
v_linea clob;
v_path varchar2(100):= 'PREPROCESSOR_DIRECTORY';
BEGIN
utl_file.fgetattr(
location => v_path,
filename => 'Worker_19032019.dat',
fexists => l_file_exists,
file_length => l_file_len,
block_size => l_blocksize);
if l_file_exists then
if l_file_len > 0 then
--dbms_output.put_line('The file will read correctly');
v_archivo := utl_file.fopen ('PREPROCESSOR_DIRECTORY', 'Worker_19032019.dat', 'r',32767);
loop
utl_file.get_line (v_archivo, v_linea);
dbms_output.put_line (v_linea);
end loop;
--utl_file.fclose(v_archivo);
else
dbms_output.put_line('The file is empty');
end if;
else
dbms_output.put_line('The file does not exists');
end if;
END;
Процедура печатает только часть содержимого файла, а затем показывает ошибку.