我有一个 ABAP 内部表。结构化,具有多个列(例如 25)。名称和类型无关紧要。该表可以变得非常大(例如 5,000 条记录)。
| A | B | ... |
| --- | --- | --- |
| 7 | X | ... |
| 2 | CCC | ... |
| 42 | DD | ... |
现在我想将其中一列(例如B)设置为特定的常数值(例如'Z')。
最短、最快和最节省内存的方法是什么?
我最好的猜测是LOOP REFERENCE INTO
. 这非常有效,因为它就地更改了表,而不会浪费新的内存。但它占用了三个语句,这让我想知道是否有可能变得更短:
LOOP AT lt_table REFERENCE INTO DATA(ls_row).
ls_row->b = 'Z'.
ENDLOOP.
然后是VALUE
运算符将其简化为一条语句,但效率不高,因为它创建了新的内存区域。对于大量列,它也会变得很长,因为它们必须一一列出:
lt_table = VALUE #( FOR ls_row in lt_table ( a = ls_row-a
b = 'Z' ) ).
有没有更好的方法?