当遇到特殊字符时,Oracle APEX的BI报告打印为空白

问题描述 投票:1回答:1

我正在使用Oracle APEX 5.1版,用户正在尝试从Oracle APEX打印出BI报告。目前,我们正在利用“APEX_UTIL.DOWNLOAD_PRINT_DOCUMENT”(签名4)将APEX页面中的数据打印到BI报告中。

一切正常,直到程序在XML标记中遇到“&”或“<”或“>”。当“XML BI报告”或“APEX_UTIL.DOWNLOAD_PRINT_DOCUMENT”(我之前提及因为我不知道问题发生在哪里)遇到这些字符时,报告显示为空白。如果从XML标记中手动删除上述字符,则BI报告可以正常工作并打印出来。

重现步骤:1)创建下面示例中给出的XML数据。请参阅“GMRISKMITIGATION”XML标记中的“&”(您可以将此“&”替换为“<”或“>”,您将获得相同的结果)

<?xml version="1.0"?>
<ROWSET>
<ROW>
  <ID>1234</ID>
  <ADDITIONAL_COMMENTS>New "test" front test test test test test test.</ADDITIONAL_COMMENTS>
  <GMRISKMITIGATION> test test  test  test &  test.</GMRISKMITIGATION>
</ROW>
</ROWSET>

2)现在您拥有了数据,然后使用APEX页面中“按钮”下面给出的例程来下载BI报告。

APEX_UTIL.DOWNLOAD_PRINT_DOCUMENT (p_file_name => 'myreport',p_content_disposition => 'attachment', p_report_data => l_clob, /* XML data in clob format */ p_report_layout => l_file_as_clob,p_report_layout_type => 'rtf',
  p_document_format => 'rtf');

3)现在,如果按下按钮,BI报告将成功下载,但它将为空。

oracle oracle-apex oracle-apex-5 oracle-apex-5.1 oracle-apex-18.2
1个回答
1
投票

最后,我能够解决这个问题。我能够解决角色问题,我所做的只是将“&”替换为“%26”,一切正常,现在我也不必转换本地字符集中的字符,这提高了性能好。

l_clob := replace(l_clob,'&','%26');

请在下面找到URL以供进一步参考。

https://community.oracle.com/message/14039814#14039814 https://community.oracle.com/message/3756610#3756610

© www.soinside.com 2019 - 2024. All rights reserved.