赛跑网

 找回密码
 注册

QQ登录

只需一步,快速开始

快捷登录

查看: 1943|回复: 0

24,ABAP语法之内表批量操作

[复制链接]
发表于 2015-7-1 15:09:10 | 显示全部楼层 |阅读模式
之前的一系列帖子中介绍了内表的定义和分类,今天介绍内表的批量操作,单笔记录的增删改比较容易理解;批量操作主要包括批量新增/批量修改/批量删除。
先定义内表:
DATA GT_TAB1 TYPE STANDARD TABLE OF MARA.
DATA GS_TAB1 TYPE MARA.
DATA GT_TAB2 TYPE STANDARD TABLE OF MARA.
DATA GS_TAB2 TYPE MARA.

一,批量新增
可能大家都会想到
SELECT * FROM MARA INTO TALBE GT_TAB1.查询语句不是介绍的重点,来看下面两个:
APPEND LINES OF GT_TAB1 TO GT_TAB2.  等同于 GT_TAB2 = GT_TAB1.
APPEND LINES OF GT_TAB1 FROM 3 TO 100 TO GT_TAB2.
这类语句使用较少,但是在一些特殊的情况下运用起来还是很方便的。请持续关注SAP培训论坛

二,批量修改
内表修改通常使用LOOP + MODIFY,如果内表数据大并且均是更改相同条件的数据时,即可使用批量修改,省时省力。
MODIFY GT_TAB1 FROM GS_TAB2 TRANSPORTING MTART WHERE MATNR  = ''. "即可更新内表中所有MATNR = ''的记录的MTART的值
如有需要更新所有的字段,则需要在TRANSPORTING后添加所有的字段名;
如果需要更新所有的数据,则需要在WHERE后更换为一个恒为真的条件;
即是:批量修改内表数据,关键字TRANSPORTING和WHERE必须同时存在。

三,批量删除
FREE GT_TAB2
CLEAR GT_TAB2.
DELETE GT_TAB2  WHERE MATNR = ''.
DELETE GT_TAB2 WHERE MATNR NOT IN R_MATNR.
以上都是常用的可批量删除内表数据的语法。




最近访客

  • tbb1177
    2024-01-16
  • EricCai
    2022-08-30
  • admin
    2020-10-25




上一篇:23,ABAP内表分类标准之二
下一篇:25,ABAP语法之READ TABLE练习答案
本楼点评(0) 收起
高级模式
B Color Image Link Quote Code Smilies |上传

本版积分规则

小黑屋|联系我们|赛跑网 ( QQ:108519493QQfsq

GMT+8, 2024-4-28 16:34 , Processed in 0.154165 second(s), 35 queries .

Powered by 91SAP X3.4

© 2001-2023 91sap Team.

快速回复 返回顶部 返回列表