SAP ABAP - 内部表


内表实际上是一个临时表,它包含正在执行的ABAP程序的记录。内表仅在 SAP 程序运行时存在。它们用于通过ABAP语言处理大量数据。当需要从数据库表中检索数据时,我们需要在ABAP程序中声明一个内表。

内表中的数据按行和列存储。每一行称为一行,每一列称为一个字段。在内表中,所有记录都具有相同的结构和键。使用索引或键访问内表的各个记录。由于内表在相关程序执行之前一直存在,因此当程序执行终止时,内表的记录将被丢弃。因此内表可以用作临时存储区域或临时缓冲区,可以根据需要修改数据。这些表仅在运行时占用内存,而不是在声明时占用内存。

内表仅在程序运行时存在,因此在编写代码时,必须以程序可以使用它的方式构建内表。您会发现内部表的操作方式与结构相同。主要区别在于结构只有一行,而内部表可以根据需要有任意多行。

内表可以由多个字段组成,对应于表的列,就像在ABAP字典中使用多个字段创建表一样。键字段也可以与内部表一起使用,并且在创建这些内部表时它们提供了稍微更大的灵活性。对于内部表,可以指定一个非唯一键,允许存储任意数量的非唯一记录,并允许在需要时存储重复记录。

内部表的大小或其包含的行数不固定。内表的大小根据与内表相关的程序的要求而改变。但建议保持内部表尽可能小。这是为了避免系统在处理大量数据时运行缓慢。

内部表有多种用途 -

  • 它们可用于保存稍后在程序中使用的计算结果。

  • 内部表还可以保存记录和数据,以便可以快速访问这些记录和数据,而不必从数据库表访问这些数据。

  • 它们用途广泛。它们可以使用任意数量的其他定义的结构来定义。

例子

假设用户想要从一个或多个大表创建各种客户的联系号码列表。用户首先创建一个内表,从客户表中选择相关数据,然后将数据放入内表中。其他用户可以直接访问和使用这个内部表来检索所需的信息,而不用在程序运行时编写数据库查询来执行每个操作。