前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >matinal:SAP ABAP 内表数据操作详解

matinal:SAP ABAP 内表数据操作详解

作者头像
matinal
发布2023-10-14 14:18:31
7300
发布2023-10-14 14:18:31
举报
文章被收录于专栏:SAP Technical

一、增加数据 1、INSERT插入数据

INSERT可以按内表的具体字段向表中插入一行或者多行数据:

INSERT [wa INTO|INITIAL LINE INTO] itab [INDEX idx].

INSERT [wa INTO|INITIAL LINE INTO] TABLE itab.

INSERT LINES OF itab1 [FROM idx] [TO idx2] INTO itab2 [INDEX idx3].

实例:

2、逐行填充内表

           A、要将内表仅用于存储数据,出于性能方面的考虑,建议使用 APPEND。

           B、要计算数字字段之和或要确保内表中没有出现重复条目,请使用 COLLECT 语句。

           C、要在内表现有行之前插入新行,请使用INSERT语句。

语法:

APPEND [<wa> TO|INITIAL LINE TO] <itab>.

COLLECT [<wa> INTO] <itab>.

                   INSERT [<wa> INTO|INITIAL LINE INTO] <itab> [INDEX  <idx>].   3、 将内表内容复制到另一个内表

     A、要将内表行附加到另一个内表中,请使用APPEND语句。

     B、要将内表行插入另一个内表中,请使用INSERT语句。

     C、要将内表条目内容复制到另一个内表中,并且覆盖该目标表格,请使用 MOVE语句。

语法:

附加内表行:  APPEND LINES OF <itab1> [FROM <n1>] [TO <n2>] TO <itab2>.

插入内表:     INSERT LINES OF <itab1> [FROM <n1>] [TO <n2>]  INTO <itab2> [INDEX <idx>].

复制内表:     MOVE <itab1> TO <itab2>.

                       <itab2> = <itab1>.

4、OPEN SQL将数据表数据放入内表

通过OPEN SQL将数据表中的数据按条件查询后放入内表中:

          SELECT …  INTO TABLE <itab>

SELECT … APPENDING TABLE <itab>

实例:SELECT BNAME AS NAME PERSNUMBER AS TELNUM  ADDRNUMBER AS ADDR INTO TABLE EMP FROM USR21.

二、更改内表数据

             MODIFY(直接修改内表数据)按内表位置或者具体内表字段值相等条件修改内表数据:

             MODIFY itab [FROM wa] [INDEX idx] [TRANSPORTING f1...fn] WHERE cond.

实例:

             MODIFY EMP INDEX 1.         "更改内表EMP第一行数据

             MODIFY EMP TRANSPORTING TELNUM WHERE NAME = 'JERY'.    "更改内表中NAME=‘JERY’的TELNUM值

三、删除内表数据

DELETE(删除内表数据) :

     按具体值删除:DELETE TABLE itab WITH TABLE KEY k1=v1...kn=vn.

 参照其它内表值删除:DELETE TABLE itab [FROM wa].

 删除具体行数据:DELETE itab INDEX idx.

 删除具体行数范围间数据:DELETE itab FROM idx1 TO idx2.

 删除重复数据,执行此条件前必须先排序: DELETE ADJACENT DUPLICATES FROM itab.

四、读取内表数据

READ依据具体行数或字段值等条件读取某一内表的数据:

   参照其它内表值读取:READ TABLE itab FROM wa.

   按具体值读取:READ TABLE itab WITH [TABLE] KEY k1=v1...kn=vn [BINARY SEARCH].

   读取具体行数据: READ TABLE itab INDEX i.

LOOP循环常用于实现内表数据的循环读取和操作

注意: 1、 使用 READ 操作的表必须得 HEADER LINE 作为查找出的数据存储窗口 2、 BINARY SEARCH 可以提高内表数据查找的速度,但是使用前必须先对内表进行排序

五、内表排序

对内表进行排序,可以指定具体的排序字段、排序方式(升/降),语法如下:

SORT itab [BY f2 f2...fn] [ASCENDING/DESCENDING] 注意:1、< f2>: 为指定的排序字段            2、递减 (DESCENDING)  和 递增 (ASCENDING)

六、内表汇总

将内表中相同的字段合并,若有类型为I的字段,则将其值加总:

COLLECT [wa INTO] itab.

实例:

输出:

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2023-08-23,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
相关产品与服务
数据保险箱
数据保险箱(Cloud Data Coffer Service,CDCS)为您提供更高安全系数的企业核心数据存储服务。您可以通过自定义过期天数的方法删除数据,避免误删带来的损害,还可以将数据跨地域存储,防止一些不可抗因素导致的数据丢失。数据保险箱支持通过控制台、API 等多样化方式快速简单接入,实现海量数据的存储管理。您可以使用数据保险箱对文件数据进行上传、下载,最终实现数据的安全存储和提取。
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档