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



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

我遇到了以下语法,用于从现有数据库表创建内部表:

data: it_mara type table of mara.

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

data: it_mara type mara.

当 mara 已经是表时,需要将它转换为表吗?

MARA是一个

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

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

声明表(带有标题行)的原始和现在过时的方法DATA it_mara TYPE mara OCCURS 10 .没有OCCURS,你没有声明一个表,所以它变成了一个结构。我的猜测是,为了保持向后兼容性,引入TYPE TABLE OF时并没有改变。

SAP

DDIC 表(透明表、池表、群集表)用作结构

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

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

data: it_mara type STANDARD table of mara.

创建一个标准内部表

data: it_mara type SORTED table of mara.

这将创建一个排序的内部表

最新更新