ABAP: синтаксис для создания внутренней таблицы из существующей таблицы базы данных

Я новичок в ABAP. Начал изучать внутренние таблицы. Я читал о способах создания внутренних таблиц.

я наткнулся на следующий синтаксис для создания внутренней таблицы из существующей таблицы базы данных:

data: it_mara type table of mara.

Я смущен, так как Мара-это таблица, и если оба l.h.s и r.h.s имеют один и тот же тип, тогда не должно быть просто:

data: it_mara type mara.

какова необходимость преобразования mara в таблицу, когда она уже является таблицей?

3 ответов


MARA является прозрачной таблицей, что означает, что она функционирует одновременно с типом структуры MARA. Так работает SAP. :)


исторические причины (всегда хорошая догадка...).

оригинальный и в настоящее время устаревший способ объявления таблицы (со строкой заголовка был DATA it_mara TYPE mara OCCURS 10. Без OCCURS, вы не объявили таблицу, поэтому она стала структурой. Я предполагаю, что для поддержания обратной совместимости это не было изменено, когда .


SAP таблица DDIC (прозрачная таблица, объединенная таблица, таблица кластера) функция как структура.

внутренняя таблица-это список структура ( = таблица DDIC) значений.

в вашем примере таблицы SAP DDIC Мара (общие материальные данные), мы можем определить его как внутреннюю таблицу как

data: it_mara type STANDARD table of mara.

что создает стандартный внутренние таблица

data: it_mara type SORTED table of mara.

что создает отсортированный внутренняя таблица