SAP ABAP - Data Types

While programming in ABAP, we need to use a variety of variables to store various information. Variables are nothing but reserved memory locations to store values. This means that when you create a variable you reserve some space in memory. You may like to store information of various data types like character, integer, floating point, etc. Based on the data type of a variable, the operating system allocates memory and decides what can be stored in the reserved memory.

Elementary Data Types

ABAP offers the programmer a rich assortment of fixed length as well as variable length data types. Following table lists down ABAP elementary data types −

Type Keyword
Byte field X
Text field C
Integer I
Floating point F
Packed number P
Text string STRING

Some of the fields and numbers can be modified using one or more names as the following −

  • byte
  • numeric
  • character-like

The following table shows the data type, how much memory it takes to store the value in memory, and the minimum and maximum value that could be stored in such type of variables.

Type Typical Length Typical Range
X 1 byte Any byte values (00 to FF)
C 1 character 1 to 65535
N (numeric text filed) 1 character 1 to 65535
D (character-like date) 8 characters 8 characters
T (character-like time) 6 characters 6 characters
I 4 bytes -2147483648 to 2147483647
F 8 bytes 2.2250738585072014E-308 to 1.7976931348623157E+308 positive or negative
P 8 bytes [-10^(2len -1) +1] to [+10^(2len -1) 1] (where len = fixed length)
STRING Variable Any alphanumeric characters
XSTRING (byte string) Variable Any byte values (00 to FF)


DATA text_line TYPE C LENGTH 40. 
text_line = 'A Chapter on Data Types'. 
Write text_line. 

DATA text_string TYPE STRING. 
text_string = 'A Program in ABAP'. 
Write / text_string. 

DATA d_date TYPE D. 
d_date = SY-DATUM. 
Write / d_date.

In this example, we have a character string of type C with a predefined length 40. STRING is a data type that can be used for any character string of variable length (text strings). Type STRING data objects should generally be used for character-like content where fixed length is not important.

The above code produces the following output −

A Chapter on Data Types 
A Program in ABAP 

The DATE type is used for the storage of date information and can store eight digits as shown above.

Complex and Reference Types

The complex types are classified into Structure types and Table types. In the structure types, elementary types and structures (i.e. structure embedded in a structure) are grouped together. You may consider only the grouping of elementary types. But you must be aware of the availability of nesting of structures.

When the elementary types are grouped together, the data item can be accessed as a grouped data item or the individual elementary type data items (structure fields) can be accessed. The table types are better known as arrays in other programming languages. Arrays can be simple or structure arrays. In ABAP, arrays are called internal tables and they can be declared and operated upon in many ways when compared to other programming languages. The following table shows the parameters according to which internal tables are characterized.

S.No. Parameter & Description

Line or row type

Row of an internal table can be of elementary, complex or reference type.



Specifies a field or a group of fields as a key of an internal table that identifies the table rows. A key contains the fields of elementary types.


Access method

Describes how ABAP programs access individual table entries.

Reference types are used to refer to instances of classes, interfaces, and run-time data items. The ABAP OOP run-time type services (RTTS) enables declaration of data items at run-time.