Internal table 备忘

1.  type 方式定义内表:

定义内表的表结构类型,就像创建数据库表前,要定义表的字段一样

"人员结构休类型
types: begin of PersonInfo,
  SID type string,
  Name type string,
end of PersonInfo.
"定义内表的类型
TYPES itab_PersonInfo TYPE STANDARD TABLE OF PersonInfo.

"定义内表的实例

data itab_person TYPE itab_PersonInfo.

此时,内表itab_PersonInfo默认的初始化大小为0,可以用INITIAL SIZE 设定初始化大小,如:

TYPES itab_PersonInfo TYPE STANDARD TABLE OF PersonInfo INITIAL SIZE 10.

INITIAL SIZE(初始化大小)的主要功能是分配Select数据到internal table时的缓冲大小,为0系统将自动分配,默认8kb。

data itab_person TYPE itab_PersonInfo.默认没有为内表分配表头行,可通过 WITH HEADER LINE 分配表头行,

data itab_person TYPE itab_PersonInfo WITH HEADER LINE.

2. Data 方式定义内表:

"定义工作区
data: BEGIN OF EMP,
  SID type string,
  Name TYPE string,
END OF EMP.
"定义内表
data itab_emp like TABLE of emp.

也可同时指定初始化大小,以及表头行:

"定义内表,指定初始化大小,以及表头行
data itab_emp like TABLE of emp INITIAL SIZE 10 WITH HEADER LINE.

3.  abap3.0之前Type方式定义内表:

"人员结构休类型
types: begin of PersonInfo,
  SID type string,
  Name type string,
end of PersonInfo.
TYPES itab_PersonInfo TYPE PersonInfo OCCURS 0.
data itab_person TYPE itab_PersonInfo WITH HEADER LINE.
itab_person-SID = 'sid'.

4. abap3.0之前Data方式定义内表:

默认定义的表头行

data: BEGIN OF Itab_Person OCCURS 0,
  sid TYPE string,
  name TYPE string,
  END OF Itab_Person.
  
Itab_Person-sid = '2003'.

没定定义表头行:

data: BEGIN OF wa_Person,
  sid TYPE string,
  name TYPE string,
  END OF wa_Person.
  
  data: itab_person LIKE wa_person OCCURS 10.

指定表头行:

data: itab_person LIKE wa_person OCCURS 10 WITH HEADER LINE.
原文地址:https://www.cnblogs.com/ITHelper/p/2846932.html