使用ABAP,通过从数据库表获取数据来更改itab中的值

您应该使用Modify语句执行此操作,如下所示-

LOOP AT itab.
   SELECT SINGLE matnr INTO itab-matnr
      FROM zlldet WHERE palet = itab-palet.
   MODIFY itab.
ENDLOOP.

还要注意,当您拥有带有标题行的内部表itab时,这意味着您具有表itab和结构itab,并且其用法取决于情况。像MODIFY和LOOP AT这样的命令很少同时使用。

DATA itab TYPE TABLE OF [something].
DATA wa TYPE [something].
LOOP AT itab INTO wa. " copies each line into wa
   SELECT SINGLE matnr INTO wa-matnr
      FROM zlldet WHERE palet = itab-palet.
   MODIFY itab FROM wa.  " writes the changed line back to the table
ENDLOOP.

另外,请注意以下几点。

  • 您也可以使用字段符号代替使用MODIFY。

  • 为了使代码性能保持最佳状态,请避免在循环内使用Select语句。您应该仅在循环之前使用范围表并使用Select语句。