note​​2317211​

大概意思是:

本文档中的解决方案用于转储DBSQL_STMNT_TOO_LARGE,错误的错误“超过了DBSL令牌的数量”,但是当转储名称为dbsql_stmnt_too_large,dbif_r_invalid_request或dbif_rsql_invalid_rsql时,它也可以用于其他类型的错误。由于所有这些转储意味着SQL语句遇到了数据库系统的限制。

导致:

如果执行一个非常大的abap打开sql语句,该语句映射到dbsl的令牌列表(在运行时链接到SAP内核的数据库的共享库),其中包含超过65,535令牌(在旧内核版本中,32,767),发生运行时误差dbsql_sql_error或出现不同的终端,因为系统可以将不完整的令牌列表传送到DBSL。

这是针对SQL命令违反的大小限制。这可能是以下内容之一,具体取决于使用的数据库系统:

1、声明文本太长了;

2、该声明包含太多单词;

3、该声明包含太多条件;

4、该声明包含太多的比较值;

结合在一起,指定的比较值需要超过64 MB的内存。

如果 ON-, WHERE- or HAVING SQL子句的情况下,通常会发生类似的错误,其中包含包含太多条目的内部表(范围表,选择选项)。