SAP问题 OPEN SQL 取不到值

关键:数据库中有数据,但是open sql取不到数据

背景:

标准程序在测试环境正常执行,在生产环境报错。

解决过程:

第一步:分析执行结果不一致可能的原因:

1.测试数据问题,可能性小,验证简单

  1. 测试,生产版本不一致,可能性很小,验证简单

  2. 由于配置数据不一致导致程序走了不同分支,可能性较大,验证复杂

第二步:逐条排除并查找原因

排除原因1和2,根据报错消息,调试测试和生产走向不同分支的节点,发现正式环境一个SQL语句取不到数据导致最终报错。排除原因2

SE16N同样条件能查询到数据,且未转换的值和查询条件值一致,进一步使用DB02 SQL判断同样数据的确存在

在程序执行前使用语句断点排除了DELETE 操作

ST05跟踪发现无数据库访问记录,仅有缓存访问记录,确定表缓存的问题,使用/$TAB清除表缓存,也可以在AL12中操作或者上报Basis

PS:生产环境清除缓存需谨慎,尽量不要使用/$SYNC 直接清除所有缓存

参考文章:https://blog.csdn.net/xiefireworks/article/details/135294820

来尝试复现该问题(仅作复现,非问题真实原因,导致该问题的原因很多,涉及到系统)

创建表YLC_TEST_CACHE,技术设置如下

新建程序,代码如下

执行上述程序五次以上,确保该表缓存成功

执行如下代码,使用Native SQL写入数据

此时使用OPEN SQL查询数据,无结果

SE16N 中可以查看到该数据

相关推荐
小二·20 分钟前
Redis 7 分布式缓存架构实战
redis·分布式·缓存
可乐ea2 小时前
【Spring Boot + MyBatis|第4篇】MyBatis 动态 SQL:if、where、foreach 使用详解
java·spring boot·后端·sql·mybatis
一拳一个娘娘腔3 小时前
CVE-2026-43284 — Dirty Frag 深度拆解:当零拷贝遇上原地解密,页缓存成了攻击者的画板
linux·缓存
lx188548698963 小时前
Redis大Key阻塞:单线程CPU100%的致命陷阱
数据库·redis·缓存
IT策士3 小时前
Redis 从入门到精通:位图、HyperLogLog、GEO
数据库·redis·缓存
布局呆星3 小时前
Spring Boot + Redis 缓存实战:@Cacheable、序列化踩坑、缓存一致性,一次讲透
spring boot·redis·缓存
IvorySQL3 小时前
PostgreSQL 技术日报 (6月8日)|索引预取迭代,AI 安全功能上新
数据库·人工智能·sql·安全·postgresql
持敬chijing3 小时前
Web渗透之SQL注入-SQLMAP使用笔记
数据库·sql·安全·web安全·网络安全·网络攻击模型
千里马学框架4 小时前
重学Perfetto浏览器在线抓取trace及高频sql分享
android·sql·智能手机·架构·aaos·perfetto·车机
努力成为AK大王4 小时前
计算机底层核心原理:CPU、总线、缓存与内存深度解析
缓存·内存·cpu