内表是SAP程序中存储数据库表的载体。
三种内表类型:
- standard table——标准表
- sorted table——排序表
- hashed table——哈希表
内表声明:
有无HEADER LINE的内表比较
HEADER LINE就是内表的工作区WORK AREA,用在数据的存取上。在某些操作下,如LOOP、READ等,如果没有HEADER LINE,则需要定义相同结构的工作区来接收数据。
工作区是结构化的只存储1条数据的数据对象。
LIKE TABLE OF默认定义的是标准表,同LIKE STANDARD TABLE OF。
内表操作
APPEND——附加操作
语法:APPEND [LINES OF] [<itab1>] [FROM <n1>] [TO <n2>] [TO] <itab2>.
COLLECT——聚集数据
在加入新行时将KEY字段或非数值字段具有相同值的数据行的数值字段的值进行加总,多行数据汇总成一行。
语法::COLLECT [<wa> INTO] <itab>.
READ TABLE——读取内表行数据(只读取1条)
语法:READ TABLE <itab> [INTO <wa>] [INDEX <idx>]
[WITH KEY <col> = <f>].
MODIFY——修改内表数据(MODIFY不用在LOOP中,则必须指定INDEX)
语法:MODIFY <itab> [FROM <wa>] [INDEX <idx>]
[TRANSPORTING <f1>…<f2>]
[WHERE <condition>].
DELETE——删除内表数据
语法:DELETE <itab> INDEX <idx>.
or DELETE <itab> [FROM <n1> to <n2>] [WHERE <condition>].
SORT——排序内表
语法:SORT <itab> [<order>] [BY <f1>].
<order>:可分成递减(DESCENDING)和递增(ASCENDING), 空白表示ASCENDING。
<f1>:指定排序的字段。
LOOP——循环内表
语法:LOOP AT <itab> [INTO <wa>] [FROM <n1> TO <n2>] [WHERE <condition>].
<loop expression>.
ENDLOOP.