abap - 错误 FOR ALL ENTRIES 选择的 SQL 命令太大
问题描述
以下语句导致短转储说:
FOR ALL ENTRIES 选择的 SQL 命令太大
所以在下面的代码中,范围表都具有范围表类型。导致的运行时错误是DBSQL_FAE_STATEMENT_TO_BIG
. 我不完全确定是什么原因造成的以及如何优化它。
请注意,我已经一次循环遍历一组条目it_tab2
并在循环中执行此选择,以便处理it_tab2
太大的情况。
范围表中的条目数似乎也没有太多,这让我想知道为什么它会导致转储。
SELECT id numpeople APPENDING TABLE it_tab
FROM workbook
FOR ALL ENTRIES IN it_tab1
WHERE id EQ it_tab1-id
AND id IN it_tab2
AND lang IN tab_ranges1
AND name IN tab_ranges2
AND phone IN tab_ranges3
AND fax IN tab_ranges4.
解决方案
这个限制来自数据库端。每个数据库都有与数据大小相关的 IN 运算符的限制。您可以尝试使用 JOIN 而不是 FOR ALL ENTRIES。如果没有办法,您可以将 itab 拆分成更小的部分。
推荐阅读
- mysql - Sequelize 多对多关系不作为外键保存在数据库中
- python-3.x - 将驱动器文件发送到 python 电报机器人
- powershell - PowerShell Invoke-WebRequest 不发送 cookie
- highcharts - HighCharts 绘制自定义线段标注
- python - 如何根据百分比概率生成伪随机字符串?
- list - 从 JSON 创建 Python 字典
- python - 带有pyserial的Python到Arduino,突然冻结而没有错误
- java - 然后和最后使用 Flowable 反应式 x Java
- metrics - 度量等级降维算法
- ios - Flutter PopupMenuButton onSelected 未触发