You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Oracle Apex经典报告基于数值实现条件图标颜色格式化及报错处理

问题解决说明

报错原因

你遇到的ORA-00936: missing expression报错是由CASE表达式的语法错误导致的:
你使用的是仅支持等值匹配的简单CASE表达式写法(CASE 字段 WHEN 固定值 THEN 返回值),这种语法不支持>这类不等比较操作。同时你当前的判断顺序存在逻辑缺陷:数值较小的阈值放在前面时,大于高阈值的数值会优先匹配到低阈值的规则,导致高阈值的判断永远不会生效。

修正后的SQL代码

SELECT task_name,
start_date,
status,
CASE
  WHEN status > 200 THEN 'fa-exclamation-triangle is-pending'
  WHEN status > 150 THEN 'fa-exclamation-circle is-holding'
  WHEN status > 100 THEN 'fa-check-circle is-closed'
  WHEN status > 50 THEN 'fa-clock-o is-open'
  ELSE 'fa-question-circle is-unknown' -- 可自定义未匹配场景的默认值
END status_icon,
CASE
  WHEN status > 200 THEN 'orange'
  WHEN status > 150 THEN 'pink'
  WHEN status > 50 THEN 'green'
  WHEN status > 10 THEN 'red'
  ELSE 'gray' -- 可自定义未匹配场景的默认颜色
END icon_color,
assigned_to
FROM eba_ut_chart_tasks
ORDER BY 2

关键修正点

  • 改用搜索型CASE表达式,CASE后不直接跟字段,每个WHEN子句写完整的判断条件status > xxx,支持不等值的规则判断
  • 调整阈值判断顺序为从大到小,保证每个数值会匹配到符合要求的最高优先级规则
  • 新增ELSE分支处理所有未覆盖到的数值场景,避免返回空值

内容的提问来源于stack exchange,提问作者honeymoon

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.25 08:15:03