我知道这个问题肯定是在无限时间被问过,但我找不到有效的答案。
我在oracle apex交互式报告中使用了解码语句。我们的想法是,如果值为null,则显示破折号,如果不是,则显示复选标记图像。
在我对报告的SQL查询中:
select "col1",
"col2",
decode (col3, NULL, '-', '<img src="#APP_IMAGES#check.png" alt="check mark" />') "col3"
from "#OWNER#"."table"
在报告中,我看到所有列,其中col3为null我得到一个破折号,但是如果不为null,则打印
<img src="path/to/check.png" alt="check mark" />
看看html它实际打印出来了 &amp; lt&amp; gt而不是&lt;&gt;。
应该是一个简单的修复来逃避这些角色,但我无法弄清楚如何逃避&lt;和&gt;字符。
有趣的是,我得到这个想法的网站对这些字符没有任何问题:http://www.ruleworks.co.uk/apex/howto-decode-doc.asp
答案 0 :(得分:1)
获得col3属性。在APEX 5中,您将找到一个名为“Escape special characters”的选项。将其切换为“否”,您将看到您的HTML。
但是,请谨慎使用此设置,因为您可以轻松引入XSS(跨站点脚本)。在你的情况下,你不会因为你没有使用用户提供的数据作为col3的一部分,但是很高兴知道。
更好的方法是尝试使用“HTML Expression”字段(也是列的属性)。然后col3可以返回图像,HTML表达式将是:
select ...
, decode (col3, NULL, 'blank.gif','check.png') col3_flag
...
HTML表达式:
<img src="#APP_IMAGES##COL3_FLAG#"/>