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

如何正确使用Oracle JSON_EXISTS匹配两种JSON结构的高危漏洞

解决Oracle JSON_EXISTS匹配两种JSON结构的问题

你的CLOB类型列results存在两种JSON结构:

  • 纯数组形式:[{"severity":"High", ...}, ...]
  • 带版本的对象嵌套数组形式:{"version":"x.x", "results":[{"severity":"High", ...}, ...]}

要通过单个JSON_EXISTS语句筛选出包含severity为High的漏洞数据行,可以用OR逻辑同时匹配两种结构的路径:

SELECT *
FROM 你的表名
WHERE JSON_EXISTS(results, '$[*]?(@.severity == "High")' OR '$.results[*]?(@.severity == "High")');

逻辑说明

  • $[*]?(@.severity == "High"):匹配纯数组结构,遍历数组所有元素,检查是否存在severity等于High的项
  • $.results[*]?(@.severity == "High"):匹配嵌套数组的对象结构,定位到results数组后遍历元素,检查是否存在目标severity的项
  • 两个路径用OR连接,只要满足其中一种结构的条件,该行就会被筛选出来

注:确保你的Oracle版本为12c及以上,该版本开始支持JSON_EXISTS的多路径逻辑判断。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.15 06:13:11