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

Oracle Apex交互式报表跨库列对比及差异列高亮需求

实现Oracle Apex交互式报表跨库数据对比并高亮差异

1. 修改报表数据源查询

先把本地表和远程跨库表通过db_name关联,同时生成差异标记字段,方便后续高亮:

SELECT
    COALESCE(a.db_name, b.db_name) AS db_name,
    a.db_value AS local_db_value,
    b.db_value AS remote_db_value,
    a.db_order AS local_db_order,
    b.db_order AS remote_db_order,
    -- 处理NULL值,标记db_value是否存在差异
    CASE WHEN NVL(a.db_value, '~') <> NVL(b.db_value, '~') THEN 'Y' ELSE 'N' END AS value_diff,
    -- 处理NULL值,标记db_order是否存在差异
    CASE WHEN NVL(a.db_order, -999) <> NVL(b.db_order, -999) THEN 'Y' ELSE 'N' END AS order_diff,
    -- 标记记录存在状态
    CASE WHEN a.db_name IS NULL THEN '仅在远程库存在'
         WHEN b.db_name IS NULL THEN '仅在本地库存在'
         ELSE '两边均存在' END AS record_status
FROM db_attributes a
FULL OUTER JOIN db_attributes@db_test b
    ON a.db_name = b.db_name

注:用NVL处理NULL值,避免因一方为NULL导致差异判断失效;COALESCE确保db_name列始终显示有效标识。

2. 设置列高亮规则

在Apex交互式报表的编辑界面,给对应列添加条件格式:

  • local_db_value/remote_db_value列:添加规则,当value_diff = 'Y'时,设置背景色为#ffebee(浅红)或其他醒目颜色
  • local_db_order/remote_db_order列:添加规则,当order_diff = 'Y'时,设置相同或另一种高亮色
  • record_status列:可额外设置颜色区分,比如“仅在本地库存在”设为#fff3e0(浅黄),“仅在远程库存在”设为#e3f2fd(浅蓝)

具体操作:

  • 进入报表编辑页面,找到目标列,点击列名旁的编辑图标
  • 在列属性的条件格式区域,点击“添加格式规则”
  • 选择“基于列值”,设置条件(例如value_diff = 'Y'),配置样式(背景色、字体颜色)
  • 保存规则后,报表会自动根据条件高亮差异列

3. 权限验证

确保当前Apex应用使用的数据库用户拥有访问db_attributes@db_test跨库表的权限,若没有需联系DBA授权。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.05 03:37:42