У меня есть кнопка с dynamic action и типом - execute js, js запускает процесс, который запускает процедуру
Процедура грузит данные - выбранные из базы данных и преобразованные в clob, а затем в blob.
Но файл не загружается, при нажатии на кнопку
P.S. решение для аналогичной задачи, но у меня не работает
https://community.oracle.com/tech/developers/discu...
Procedure Code
create or replace procedure "CREATE_CODOGEN_JSON"
(target_table_param IN VARCHAR2)
is
l_blob_content blob;
lol clob;
v_dest_offset integer := 1;
v_src_offset integer := 1;
v_lang_context integer := DBMS_LOB.DEFAULT_LANG_CTX;
v_warning integer := DBMS_LOB.WARN_INCONVERTIBLE_CHAR;
BEGIN
SELECT
to_clob(
json_object(
'task_id' VALUE TARGET_TABLE))
into lol
from UKDA.CODOGEN_META_TABLES
WHERE TARGET_TABLE = 'rv_lol';
dbms_lob.createtemporary(l_blob_content, true, DBMS_LOB.CALL);
sys.htp.init;
sys.OWA_UTIL.mime_header('application/json', FALSE, 'UTF-8');
sys.HTP.p('Content-Length: ' || DBMS_LOB.getlength(lol));
sys.HTP.p('Content-Disposition: attachment; filename="'||'FILE_NAME.json'||'"');
dbms_lob.converttoblob(
dest_lob => l_blob_content,
src_clob => lol,
amount => DBMS_LOB.LOBMAXSIZE,
dest_offset => v_dest_offset,
src_offset => v_src_offset,
blob_csid => DBMS_LOB.DEFAULT_CSID,
lang_context=> v_lang_context,
warning => v_warning
);
sys.WPG_DOCLOAD.download_file(l_blob_content);
DBMS_LOB.FREETEMPORARY (l_blob_content);
apex_application.stop_apex_engine;
end;