问题描述
嗨,
我有可以使用浏览器访问的URL,并显示PDF
http://serv-ora11g:8081/jasperserver/flow.html?_flowId=viewReportFlow&j_username=jasperadmin&j_password=jasperadmin&reportUnit=/KVS/Collection/col1190&output=pdf
我为我的用户创建了一个ACL,并确实验证了
当我运行下面的代码时,我得到了这个错误,谢谢
过程call_report(p_report_name VARCHAR2,p_parameter type_parameter)
是
v_url VARCHAR2(4000);
请求系统;
响应系统。
v_file BLOB;
v_download RAW(32767);
开始
v_url := build_url(p _ 报告 _ 名称,p _ 参数);
-- 下面是导致错误的行
v_request := sys.utl_http.begin_request(v_url);
sys.utl_http.set_header(v_request,'user-Agent',g_user_agent);
响应: = sys.utl_http.get_response(v_request);
Dbms_lob.createtem临时 (v_file,TRUE,dbms_lob.session);
循环
开始
sys.utl_http.read_raw(v_response,v_download);
dbms_lob.writeappend(v_file,utl_raw.length(v_download),v_download);
当sys.Utl_http.end_of _ body时异常
退出;
结束;
结束循环;
sys.utl_http.end_response(v_response);
owa_util.mime_header('application/'| | output_format,false);
htp.p('内容长度:' | | dbms_lob.getlength(v_file));
htp.p('Content-Disposition: attachment; filename = "' | | p_report_name | | '。' | | output_format | | '");
owa_util.http_header_close;
下载文件;
Dbms_lob。免费临时 (v_file);
结束呼叫 _ 报告;
我有可以使用浏览器访问的URL,并显示PDF
http://serv-ora11g:8081/jasperserver/flow.html?_flowId=viewReportFlow&j_username=jasperadmin&j_password=jasperadmin&reportUnit=/KVS/Collection/col1190&output=pdf
我为我的用户创建了一个ACL,并确实验证了
当我运行下面的代码时,我得到了这个错误,谢谢
过程call_report(p_report_name VARCHAR2,p_parameter type_parameter)
是
v_url VARCHAR2(4000);
请求系统;
响应系统。
v_file BLOB;
v_download RAW(32767);
开始
v_url := build_url(p _ 报告 _ 名称,p _ 参数);
-- 下面是导致错误的行
v_request := sys.utl_http.begin_request(v_url);
sys.utl_http.set_header(v_request,'user-Agent',g_user_agent);
响应: = sys.utl_http.get_response(v_request);
Dbms_lob.createtem临时 (v_file,TRUE,dbms_lob.session);
循环
开始
sys.utl_http.read_raw(v_response,v_download);
dbms_lob.writeappend(v_file,utl_raw.length(v_download),v_download);
当sys.Utl_http.end_of _ body时异常
退出;
结束;
结束循环;
sys.utl_http.end_response(v_response);
owa_util.mime_header('application/'| | output_format,false);
htp.p('内容长度:' | | dbms_lob.getlength(v_file));
htp.p('Content-Disposition: attachment; filename = "' | | p_report_name | | '。' | | output_format | | '");
owa_util.http_header_close;
下载文件;
Dbms_lob。免费临时 (v_file);
结束呼叫 _ 报告;
专家解答
您的blob获取代码看起来不错。我只是这样做了:
ORA-29263不是ACL错误-它是一个更 “基本” 的错误,例如,您要求http并且该站点仅支持https,或者您遇到网络超时等。您的代码很好-但在您的 “导航” 到该web服务器上有一些不正确的地方。
希望这有所帮助。
SQL> set serverout on
SQL> declare
2 v_url VARCHAR2(4000);
3 v_request sys.utl_http.req;
4 v_response sys.utl_http.resp;
5 v_file BLOB;
6 v_download RAW(32767);
7 BEGIN
8 v_url := 'http://www.ausoug.org.au/2020/documents/Connor_McDonald_profile2.pdf';
9 v_request := sys.utl_http.begin_request(v_url);
10 --sys.utl_http.set_header(v_request, 'User-Agent', g_user_agent);
11 v_response := sys.utl_http.get_response(v_request);
12 dbms_lob.createtemporary(v_file, TRUE, dbms_lob.session);
13 LOOP
14 BEGIN
15 sys.utl_http.read_raw(v_response, v_download);
16 dbms_lob.writeappend(v_file, utl_raw.length(v_download), v_download);
17 EXCEPTION WHEN sys.utl_http.end_of_body THEN
18 EXIT;
19 END;
20 END LOOP;
21 sys.utl_http.end_response(v_response);
22 --owa_util.mime_header('application/' || output_format, false);
23 --htp.p('Content-length: ' || dbms_lob.getlength(v_file));
24 --htp.p('Content-Disposition: attachment; filename="' || p_report_name || '.'|| output_format ||'"');
25 --owa_util.http_header_close;
26 --wpg_docload.download_file(v_file);
27 dbms_output.put_line(dbms_lob.getlength(v_file));
28 dbms_lob.freetemporary(v_file);
29 END;
30 /
5814
PL/SQL procedure successfully completed.
C:\temp>dir Connor_McDonald_profile2.pdf
Volume in drive C is System
Volume Serial Number is 7AD7-C05A
Directory of C:\temp
18/04/2014 05:49 PM 5,814 Connor_McDonald_profile2.pdf
ORA-29263不是ACL错误-它是一个更 “基本” 的错误,例如,您要求http并且该站点仅支持https,或者您遇到网络超时等。您的代码很好-但在您的 “导航” 到该web服务器上有一些不正确的地方。
希望这有所帮助。
「喜欢这篇文章,您的关注和赞赏是给作者最好的鼓励」
关注作者
【版权声明】本文为墨天轮用户原创内容,转载时必须标注文章的来源(墨天轮),文章链接,文章作者等基本信息,否则作者和墨天轮有权追究责任。如果您发现墨天轮中有涉嫌抄袭或者侵权的内容,欢迎发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。




