背景:
????????标准程序在测试环境正常执行,在生产环境报错。
????????2. 测试,生产版本不一致,可能性很小,验证简单
????????3. 由于配置数据不一致导致程序走了不同分支,可能性较大,验证复杂
????????排除原因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,技术设置如下