восстановить файл os в отчете oracle apex - PullRequest
0 голосов
/ 01 января 2019

Я создал форму с «элементом просмотра» и тем файлом, который я выбираю, используя этот элемент, я сохраняю его в каталоге моей операционной системы.

, но я не могу получитьтот же файл в моем классическом отчете.

вот процедура, которую я использую, чтобы записать загруженный элемент в файловую систему os.

создать или заменить процедуру write_to_file (

p_file_name invarchar2

, p_directory в varchar2

, p_content в blob

) равно

l_file          utl_file.file_type;

l_buffer        raw(32000);

l_amount        binary_integer := 32000;

l_pos           integer := 1;

l_blob          blob;

l_blob_left     number;

l_blob_length   number;

begin

l_blob_length: = dbms_lob.getlength (p_content);

l_blob_left: = l_blob_length;

- открыть файл назначения.

l_file: = utl_file.fopen (p_directory, p_file_name, 'WB',32760);

- прочитать фрагменты большого двоичного объекта и записать их в файл

- до завершения.

- если достаточно мало для одной записи

если l_blob_length <32760, то </p>

utl_file.put_raw (l_file, p_content);

utl_file.fflush (l_file);

else - писать по частям

l_pos: = 1;

, в то время как l_pos

loop

dbms_lob.read (p_content, l_amount, l_pos, l_buffer);

utl_file.put_raw (l_file, l_buffer);

utl_file.fflush (l_file);

- установить начальную позицию для следующего среза

l_pos: = l_pos + l_amount;

- установить конечную позицию, если меньше 32000 байт

l_blob_left: = l_blob_left- l_amount;

если l_blob_left <32000, то </p>

 l_amount := l_blob_left;

end if;

end loop;

end if;; 1069 *

utl_file.fclose (l_file);

исключение

когда другие, тогда

- закрыть файл, если что-то пойдет не так.

если utl_file.is_open (l_file) затем

utl_file.fclose (l_file);

end if;

повышение;

end;

может кто-нибудь помочьмне восстановить тот же файл в моем отчете Apex?

...