从pl / sql程序运行oracle报告

时间:2013-08-09 05:45:04

标签: plsql oraclereports

我正在ORACLE Web应用程序中重构一个非常旧的报告生成函数。它使用JavaScript构建URL,发送到报表服务器以运行报表。我想要做的是在数据库中处理它,在PL / SQL过程中(通过mod_pl/SQL调用)。我尝试使用utl_http.begin_request来做到这一点,但有时当输出文件很大(PDF格式,大约20页,1.5M)时,我收到一个错误:

ORA-29259: end-of-input reached. 

发送请求的测试代码非常简单:

--------升级2013/08/27 --------------------------------- -------------------------

 UTL_HTTP.set_transfer_timeout(1000);
 --some params setting....
 myIdent := SRW.RUN_REPORT(myPlist);  --here raise the exception(ORA-29273:request_failed; ORA-29259: end-of-input reached.) and procedure stoped.
 r_stat := SRW.report_status(myIdent,myPlist);

@ThinkJet,谢谢你的帮助。 我登录报表服务器,发现我的程序中遇到此异常后报表仍然运行,最后成功完成。我多次测试,每次在我开始请求后的5分钟内发现异常,无论是什么我正在运行的报告类型和大小(确定,所有大尺寸,运行超过5分钟)。我想知道它是否与oracle应用服务器上的配置有关?

有人对此有所了解吗?非常感谢。

2 个答案:

答案 0 :(得分:1)

ORA-29259,而SRW.RUN_REPORT 是ias 10g,这是由httpd.conf超时参数配置引起的 只是 1.编辑$ ORACLE_HOME /Apache/Apache/conf/httpd.conf 将“超时”更改为比报表运行时间大 2.重新启动http服务器并对其进行测试。

opmnctl restartproc ias-component = HTTP_Server

答案 1 :(得分:0)

Oracle Reports方面需要一段时间来生成大型报告,以便在某个时间发生超时。尝试在发出请求之前使用utl_http.set_ransfer_timeout procedure增加超时,看看是否有帮助。