我有一个pl / sql过程,它从Jasper Server下载pdf格式的blob文件。在此过程中,我有以下代码,提示浏览器将文件下载到本地驱动器。
begin
v_param_val (1) := 1;
owa.init_cgi_env (v_param_val);
htp.flush;
-- clear the output buffer and reset response state
htp.init;
owa_util.mime_header ('application/pdf', false);--,'UTF-8'
htp.p('Content-length: ' || v_lob_length);
htp.p('Content-Disposition: attachement; filename="'||v_file||'"' );
owa_util.http_header_close;
htp.showpage ();
wpg_docload.download_file(v_blobref);
exception
when timeout_on_resource then
raise_application_error (-00051,'No response from the server.');
when others then
htp.p('other error : ' || sqlerrm);
end;
问题是,我有一个oracle apex页面,我用来调用我的程序。页面将传递值,以用作过程调用中的参数。我有一个顶点过程可以实现这一目标......
declare
v_report_name reports_data.report_name%type;
begin
v_report_name := s_reports_data.get_report_name(:P31_AVAILABLE_REPORTS);
s_reports_data.generate_jasper_report(v_report_name, :P31_DATE_TO,
:P31_RESEARCH_STATION, :P31_DATE_FROM);
end;
尝试调用该过程时,不会出现以下错误。
发生以下消息时出现意外错误:application / pdf
似乎以下行是导致错误的原因。
owa_util.mime_header ('application/pdf', false);--,'UTF-8'
或以下一行。
wpg_docload.download_file(v_blobref);
答案 0 :(得分:0)
看in the docs,该函数似乎需要3个参数。你试过吗
owa_util.mime_header('application/pdf', false, 'UTF-8')
答案 1 :(得分:0)
我终于解决了我遇到的问题。这就是我的代码现在的样子,它的工作原理非常好。
FILESYSTEM_DRIVER