从现有数据库 table 创建内部 table 的语法?

Syntax for creating internal table from existing database table?

我是 ABAP 新手。开始学习内部 tables。我正在阅读有关创建内部 tables 的方法。

我遇到了以下从现有数据库 table 创建内部 table 的语法:

data: it_mara type table of mara.

我很困惑,因为 mara 是 table,如果 l.h.s 和 r.h.s 是同一类型,那么它不应该只是:

data: it_mara type mara.

当 mara 已经是 table 时,还需要将其转换为 table 吗?

历史原因(总是一个很好的猜测...)。

声明 table(带有 header 行的原始方式和现在已过时的方式是 DATA it_mara TYPE mara OCCURS 10。没有 OCCURS,您没有声明 table,所以它变成了一个结构。我的猜测是为了保持向后兼容性,在引入 TYPE TABLE OF 时没有改变。

MARA是透明的table,这意味着它与结构类型MARA同时起作用。这就是 SAP 的工作方式。 :)

SAP DDIC table(透明 table、池化 table、集群 table)函数作为 结构.

内部table是结构(=DDICtable)值的列表。

在您的 SAP DDIC table MARA(一般 Material 数据)示例中,我们可以将其定义为内部 table,例如

data: it_mara type STANDARD table of mara.

创建一个 STANDARD 内部 table

data: it_mara type SORTED table of mara.

它创建一个 SORTED 内部 table