Skip to content

ABAP Keyword Documentation →  ABAP - Release-Specific Changes →  Changes in Release 6.10 

Internal Tables in Release 6.10

In Release 6.10, the following enhancements have been made to internal table functions:


1.Creating a table object

2.Checking the convertibility of key fields


3.Duplicate or overlapping key specifications


4.Support for accessing attributes


5.Table categories for text pools and IN conditions



6.Handling overflows in COLLECT and SUM



7.Additions ASSIGNING and REFERENCE INTO



8.Uppercase and lowercase spelling in dynamic components



9.Combined key specifications with table_line



10.Establishing the number of rows in an internal table



11.Optimization when accessing internal tables



12.Offset and length declarations for the table definition

Other versions: 7.31 | 7.40 | 7.54

Modification 1

Creating a table object

You can create any table objects at runtime by using the CREATE DATA statement. If the table type is known in full then this is taken into account by the syntax check.

Modification 2

Checking the convertibility of key fields

In the case of the statements READ TABLE itab WITH KEY k1 = v1 .... kn = vn and DELETE TABLE itab WITH KEY = v1 .... kn = vn, the system already checks whether the key values are convertible to the component type in the syntax check. This convertibility check is also effective for the newer variant READ ... WITH TABLE KEY .... Previously, the runtime error MOVE_NOT_SUPPORTED was triggered if the conversion was not possible.

Modification 3

Duplicate or overlapping key specifications

In the case of duplicate or overlapping key specifications, the statement READ TABLE itab WITH KEY k1 = v1 .... kn = vn now triggers a syntax error instead of a syntax warning. If specified dynamically, it was previously the case that the last key specification was used; now the runtime error DYN_KEY_DUPLICATE is triggered.

Modification 4

Support for accessing attributes

The ... COMPARING o->attr addition now lets you access the attributes of objects that are components of internal tables, similar to when reading, changing, deleting, or sorting internal tables.

Modification 5

Table categories for text pools and IN conditions

Alongside standard tables, the tables categories HASHED and SORTED are supported for the statements READ, DELETE, and INSERT TEXTPOOL .... The IN conditions for SELECT ... WHERE and LOOP ... WHERE are now also independent of the table category.

Modification 6

Handling overflows in COLLECT and SUM

Previously, fields of type f were only checked for possible overflows in the case of arithmetic additions. When using COLLECT and SUM, the addition was terminated in accordance with IEEE standards and a runtime error was triggered as soon as the overflow limit (Infinity) was reached. Now this raises the exception CX_SY_ARITHMETIC_OVERFLOW, which can be caught using TRY.

Modification 7

Additions ASSIGNING and REFERENCE INTO

The additions ASSIGNING and REFERENCE INTO are now available for the statements READ, LOOP, INSERT, APPEND, MODIFY, and COLLECT. Previously, only the ASSIGNING addition for the keywords LOOP and READ was available.

Modification 8

Uppercase and lowercase spelling in dynamic components

Previously, the field content of a dynamic component always had to written in capitals, for example SORT ... BY ('COMP'). Now lowercase spelling is valid in specifications for all internal table commands.

Modification 9

Combined key specifications with table_line

Now there are additional key specifications for the pseudo component table_line. Previously, it was not possible to have a key specified in the form READ ... WITH KEY table_line->attr = ... table_line = ... BINARY SEARCH, for example, where both the value of the attribute ATTR and the value of the reference itself were the key.

Modification 10

Establishing the number of rows in an internal table

You can establish the number of rows in an internal table using the LINES function. For consistency, this function is intended to replace the statement DESCRIBE TABLE in the long term, since you cannot describe all ABAP types using DESCRIBE.

Modification 11

Optimization when accessing internal tables

For Release 6.10, optimized access to tables of the types SORTED and HASHED has been introduced. For more details, see the section on Optimized Key Operations.

In addition, in the case of assignments between internal tables of the same type, data is now only copied if changes were made to these tables. This table sharing has a positive effect on runtime and the memory required.

Until now, these optimizations had to be carried out explicitly using field symbols. Now you can work normally with a work area, because no table is copied when reads are performed.

Modification 12

Offset and length declarations for the table definition

Previously, components of the table key could be specified with offset and length declarations, which resulted in undefined runtime behavior. This is no longer possible and a syntax error is triggered instead.