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

Oracle SELECT查询未返回预期行,条件变更后返回数据求解析

问题原因分析

核心条件差异导致过滤结果不同

你的两个查询仅在最后一行对au.old_text的判断逻辑上有区别:

  • 原查询的 and au.old_text is null:只筛选**DEPARTMENT_ID列首次赋值**的审计记录——也就是该字段第一次被设置值,之前没有旧值,所以old_text为空。
  • 修改后的 and au.old_text is not null:筛选**DEPARTMENT_ID列被更新**的审计记录——也就是该字段之前已有值,后续被修改,old_text存储了修改前的旧值,不为空。

标记行未返回的直接原因

你标记的第4、6行属于更新操作生成的审计记录,它们的old_text字段存在实际值(不为空),完全不符合原查询中au.old_text is null的过滤条件,因此被排除在结果集之外。

验证方法

你可以单独执行以下SQL,直接查看目标审计记录的old_text值,验证上述结论:

select au.old_text, au.new_text, au.visible_identification
from bsaudt_cd_table au
where au.table_name = 'BSCORE_SAMPLE_CONT'
  and au.column_name = 'DEPARTMENT_ID'
  and REGEXP_SUBSTR(au.visible_identification, '[^;]+') = '2207021' -- 对应sc.id=2207021

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.03 21:10:27