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

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

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

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的关键字段都被赋值了,然后才能依据内表去删除透明表中的数据。

上一篇:SQL Server 阻止了对组件 'Ad Hoc Distributed Queries' 的 STATEMENT'OpenRowset/OpenDatasource' 的访问,因为此组件已作为此服务器安全配置的一部分而被关闭。


下一篇:安装 MySQL报错 -bash: mysql: command not found