Итак, я сейчас пытаюсь загрузить файл xml, хранящийся в таблице Oracle, со ссылкой, которую я создал для страницы Oracle Apex. Вот настройки:
Таблица может содержать 2 разных файла для xml, хранящихся в виде BLOB-объектов. После этого я пытаюсь получить отчет о Oracle Apex со ссылкой для загрузки этих BLOB-объектов, по одному для каждого типа файла для каждой строки данных.
Запрос, который я должен установить для ссылок выглядит следующим образом:
select max(case when a.filename like 'TYPE1%' then dbms_lob.getlength(a.upload_file) else null end) as upload_type1,
max(case when a.filename like 'TYPE2%' then dbms_lob.getlength(a.upload_file) else null end) as upload_type2
from blob_table a;
Теперь в отчете страницы должно быть 2 столбца с разными ссылками на каждый из них, с размером каждого из них. Сами ссылки устанавливаются на одну и ту же страницу, используя «Type1» и «Type2» соответственно в качестве запроса, который предназначен для запуска следующей функции PL SQL для загрузки файлов:
declare
l_blob_content blob_table.upload_file%TYPE;
l_mime_type varchar2(20);
l_id number;
l_filename varchar2(255);
begin
select id
into l_id
from blob_table
where file_id = :FILE_ID
and filename like 'TYPE1%';
select upload_file
,'text/xml',
filename
into l_blob_content,
l_mime_type,
l_filename
from blob_table
where id = l_id;
sys.HTP.init;
sys.OWA_UTIL.mime_header(l_mime_type, FALSE, 'UTF-8');
sys.HTP.p('Content-Length: ' || DBMS_LOB.getlength(l_blob_content));
sys.HTP.p('Content-Disposition: filename="' || l_filename || '"');
sys.OWA_UTIL.http_header_close;
sys.WPG_DOCLOAD.download_file(l_blob_content);
apex_application.stop_apex_engine;
exception when apex_application.e_stop_apex_engine then
null;
when others then
HTP.p('Something wrong');
end;
Пока что из того, что я видел при поиске этой функциональности, все это кажется на месте. Однако, когда я нажимаю на ссылку и пытаюсь скачать ее, я получаю следующее сообщение:
Сначала я подумал, что у меня что-то не так, и также проверил mime_type как "application / xml", и файл отображается на странице в формате HTML. Любые идеи, почему "text / xml" дает ошибку кодирования? Связано ли это с 3-м значением ввода для mime_type?