SAP利用内表删除多条数据(自定义表)-阿里云开发者社区

开发者社区> 数据库> 正文

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

简介: 之前博文提到了使用abap中的sql语句删除某一条自定义表中的记录。下面ji介绍一下,如何通过内表,一次性删除多行记录。自定义表的结构 FUNCTION ZFM_FI_ZFIT00200. *"----------------------------------------------------.

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

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.

运行
image
image
我们注意到,在删除语句中,我们为三个关键字字段,都提供了数据。
那么假如,我们只为其中的两个字段提供数据,还能不能正常删除数据呢?
image
运行开效果
image
所以说,如果你想用下面这样的语句删除数据的话

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

版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。

分享:
数据库
使用钉钉扫一扫加入圈子
+ 订阅

分享数据库前沿,解构实战干货,推动数据库技术变革

其他文章