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 中可以查看到该数据

相关推荐
言德斐31 分钟前
SQL性能优化的思路及策略
数据库·sql·性能优化
_Johnny_2 小时前
Redis 升级操作指南:单机与主从模式
数据库·redis·缓存
不爱洗脚的小滕3 小时前
【Redis】三种缓存问题(穿透、击穿、双删)的 Golang 实践
redis·缓存·golang
源力祁老师3 小时前
ODOO数据文件(XML、CSV、SQL)是如何转换并加载到 Odoo 数据库
xml·数据库·sql
提笔了无痕3 小时前
什么是Redis的缓存问题,以及如何解决
数据库·redis·后端·缓存·mybatis
lang201509283 小时前
Spring Boot缓存机制全解析
spring boot·后端·缓存
lang201509283 小时前
Spring Boot SQL数据库全攻略
数据库·spring boot·sql
2401_841495645 小时前
【数据库开发】个人信息管理的数据库创建以及查询方法(最简单)
数据库·sql·mysql·sqlite·数据库开发·个人数据库·管理个人信息
Java水解8 小时前
KingbaseES SQL性能调优方案分享
后端·sql
ldmd28410 小时前
Go语言实战:入门篇-4:与数据库、redis、消息队列、API
数据库·redis·缓存