In ABAP programming, internal tables are dynamic data objects that are used to provide a mechanism of transferring data from a database or any other fixed structure to working memory for the purposes of array functionality. The data extracted is stored in memory, record by record.
Internal tables are mainly used to process a dataset with a predefined structure within an ABAP program. With the help of internal tables, SAP developers can store and format data within a program extracted from a database table. Due to their dynamic nature, they also save programmers from having to worry about dynamic memory management, which would otherwise be a concern.
For an internal table, the minimum size is 256 bytes. Similar to most variable declarations in ABAP, the internal tables are declared with the help of the DATA statement.
The syntax for an internal table is:
DATA <itab> TYPE|LIKE <tabkind> OF <linetype> WITH <key>
One can also declare static internal tables using the STATIC statement. Data statement can be used to construct new or program-based internal tables along with the addition of TYPE or LIKE for existing objects and types.
The table types for internal tables are declared based on the operations to be performed. The most commonly used types include:
Standard Table Type: Used in case individual records are accessed using the records index.
Hashed Table Type: Used if the main operation performed is key access.
Sorted Table Type: Used if the table is to be sorted as the data is stored.