Oracle APEX - 发生以下消息时出现意外错误:application / pdf

时间:2017-07-05 13:13:03

标签: sql plsql oracle11g jasper-reports

我有一个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);

2 个答案:

答案 0 :(得分:0)

in the docs,该函数似乎需要3个参数。你试过吗

owa_util.mime_header('application/pdf', false, 'UTF-8')

答案 1 :(得分:0)

我终于解决了我遇到的问题。这就是我的代码现在的样子,它的工作原理非常好。

FILESYSTEM_DRIVER