SAP利用内表删除多条数据(自定义表)

之前博文提到了使用abap中的sql语句删除某一条自定义表中的记录。
下面ji介绍一下,如何通过内表,一次性删除多行记录。
自定义表的结构
SAP利用内表删除多条数据(自定义表)_第1张图片

FUNCTION ZFM_FI_ZFIT00200.
*"----------------------------------------------------------------------
*"*"本地接口:
*"  IMPORTING
*"     REFERENCE(WA_KOSTL) TYPE  ZFIT00200
*"  EXPORTING
*"     REFERENCE(R_STRING) TYPE  CHAR10
*"----------------------------------------------------------------------
   CLEAR R_STRING.
   DATA ITAB_KOSTL LIKE ZFIT00200 OCCURS 10 WITH HEADER LINE.
   ITAB_KOSTL-MANDT = '300'.
   ITAB_KOSTL-KOKRS = '9999'.
   ITAB_KOSTL-KOSTL = '1500'.
   APPEND ITAB_KOSTL.
   DELETE ZFIT00200 FROM TABLE ITAB_KOSTL.
   IF SY-SUBRC = 0.
     R_STRING = 'S'."成功
   ELSE.
     R_STRING = 'F'."失败
   ENDIF.

ENDFUNCTION.

运行
SAP利用内表删除多条数据(自定义表)_第2张图片
SAP利用内表删除多条数据(自定义表)_第3张图片
我们注意到,在删除语句中,我们为三个关键字字段,都提供了数据。
那么假如,我们只为其中的两个字段提供数据,还能不能正常删除数据呢?
SAP利用内表删除多条数据(自定义表)_第4张图片
运行开效果
SAP利用内表删除多条数据(自定义表)_第5张图片
所以说,如果你想用下面这样的语句删除数据的话

DATA ITAB_KOSTL LIKE ZFIT00200 OCCURS 10 WITH HEADER LINE.
   ITAB_KOSTL-MANDT = '300'.
   ITAB_KOSTL-KOKRS = '9999'.
   ITAB_KOSTL-KOSTL = '1500'.
   APPEND ITAB_KOSTL.
   DELETE ZFIT00200 FROM TABLE ITAB_KOSTL.

必须保证内表ITAB_KOSTL的关键字段都被赋值了,然后才能依据内表去删除透明表中的数据。

你可能感兴趣的:(数据库,java,数据结构与算法)