Oracle DB 12.1, APEX 5
У меня есть кнопка для вызова процесса PL / SQL. Процесс вызывает REST, преобразует ответ (json) в BLOB и использует традиционную download_my_file
-подобную процедуру для представления результата пользователю, но вместо «загрузки / открытия» содержимое файла вопроса браузера просто отображается в виде текста, заменяя текущую страницу APEX.
Как я могу загрузить его в виде файла, если щелкнуть кнопку, а не открыть ее в текущем окне?
Процесс:
...
l_envelope := APEX_WEB_SERVICE.make_rest_request(...);
...
apex_clob2file ('text.txt', l_envelope, 'application/json');
Процедура
create or replace PROCEDURE apex_clob2file (in_filename IN VARCHAR2, in_data IN CLOB, in_mime IN VARCHAR2)
IS
...
BEGIN
...
htp.init;
owa_util.mime_header(nvl(in_mime, 'text/plain'), FALSE);
htp.p('Content-Length: ' || dbms_lob.getlength(l_blob));
htp.p('Content-Disposition: filename="' || in_filename || '"');
owa_util.http_header_close;
wpg_docload.download_file(l_blob);
apex_application.stop_apex_engine;
...
END apex_clob2file;