我是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
时并没有改变。
DDIC 表(透明表、池表、群集表)用作结构。
内部表是结构(= DDIC 表)值的列表。
在您的SAP DDIC表MARA(一般材料数据)示例中,我们可以将其定义为内部表,例如
data: it_mara type STANDARD table of mara.
创建一个标准内部表
data: it_mara type SORTED table of mara.
这将创建一个排序的内部表