在 ABAP 中,我有一个非常大的内部表,比如 31,000 行。将其拆分为多个固定大小的较小表(例如每个 1,000 行)的最短和最有效的方法是什么?
天真的方式是:
DATA lt_next_package TYPE tt_table_type.
LOOP AT it_large_table INTO DATA(ls_row).
INSERT ls_row INTO TABLE lt_next_package.
IF lines( lt_next_package ) >= lc_package_size.
INSERT lt_next_package INTO TABLE rt_result.
CLEAR lt_next_package.
ENDIF.
ENDLOOP.
IF lt_next_package IS NOT INITIAL.
INSERT lt_next_packge INTO TABLE rt_result.
ENDIF.
这很有效,而且相当有效,但看起来很麻烦,尤其是。最后的不要忘记最后一个包部分。我相信必须有一种更好的方法来使用更新的 ABAP 网格路径和表表达式来做到这一点,但到目前为止还没有想出一个。