在ABAP程序中,为了保证程序性能,有时我们需要把主键先查出来做筛选条件,比如对BSEG表的操作,有了凭证号做查询条件性能会提高很多,但最近在做一个程序时,运用这种方法总是出现ABAP错误,于是耐心调试,发现当手工构造的查询结构的行数>9992时就会报错,很是奇怪。
不过知道了原因解决起来也就方便很多了,把这个表拆成子母表,每行5000,改过之后,问题解决。
这里做个笔记,备查。
[注:] 后来发现,这个值并不是确定的,应该是和条件内表的总长度有关的,不过将大的条件内表拆分应该是提高性能的一种手段吧,同样的思路,对 FOR ALL ENTRIES IN 应该同样有效。