解决DBSQL_STMNT_TOO_LARGE DUMP问题

ABAP DUMP信息

类别 ABAP 编程错误

运行时错误
SAPSQL_STMNT_TOO_LARGE
DBSQL_STMNT_TOO_LARGE
SAPSQL_STMNT_TOO_LARGE

异常 CX_SY_OPEN_SQL_DB

短文本 Der Open SQL command is too big.

Number of DBSL tokens exceeded Current = 108296 “Maximum = 65535”

原因分析

SELECT-OPTIONS中某个条件输入的值个数太多了,所输入的条件会作为WHERE条件的IN列表,这个列表太大时就会产生上面的DUMP。

如上DUMP提示IN条件最多可以有65535个值,但传入了108296个值,造成DUMP。

解决DBSQL_STMNT_TOO_LARGE DUMP问题

解决DBSQL_STMNT_TOO_LARGE DUMP问题

解决思路

如果选择条件中输入的数值个数可以减少,就尽量减少到1000个以下,如果确实无法减少则需要优化程序。

可以通过定义一个RANGE,将选择条件输入的值列表循环传入定义的RANGE,再用RANGE作为SQL的条件,多次查询,将结果追加到内表。对SELECT-OPTIONS的数据进行分解时,要注意最后不足分解数量的数据处理,以免漏数。

解决DBSQL_STMNT_TOO_LARGE DUMP问题

解决DBSQL_STMNT_TOO_LARGE DUMP问题

如若转载,请注明出处:https://www.gavindong.com/7354.html

微信沟通
自2021年2月16日开始,全站文章免费阅读。