【发布时间】:2020-04-11 07:43:39
【问题描述】:
我正在重构 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 应用程序服务器上的配置有关?
有人知道吗?非常感谢。
【问题讨论】:
-
SRW是随 Oracle Reports 一起安装的 event-driven publishing API 软件包。 -
您是否使用utl_http.write_text 发布一些参数以报告并使用utl_http.read_raw 读取数据?你能发布用于调用报告的确切代码吗?
-
嗨,@ThinkJet,参数已经在URL中,上面代码中的'rpt_url'字符串是“localhost/reports/…”。我只是发送请求,然后报表服务器会生成一个PDF,不需要读写或下载任何东西。所以测试代码和上面完全一样。
-
抱歉,更新后也没有新想法。能否提供 SRW(
srw.start_debuggingandsrw.stop_debugging)在调试模式下生成的输出?
标签: plsql oraclereports