Skip to content

ABAP Keyword Documentation →  ABAP - Reference →  Processing Internal Data →  Character String and Byte String Processing →  Character and Byte String Processing - Overview 

Operands in Character String and Byte String Processing

Other versions: 7.31 | 7.40 | 7.54

Operands in Character String Processing

If you use character string processing (defined by the addition IN CHARACTER MODE in overloaded statements) and statements that only support character string processing, the relevant operands must be character-like. This is because the operands are processed by character and the repository of the characters in the memory is dependent on the code page used. This is absolutely essential for character string processing to work properly.

  • It is checked, however, in different ways: In non-Unicode programs, breaking this rule causes a syntax error or exception only in classes. Outside of classes, breaking the rule in non-Unicode programs just produces a warning in the syntax check, and no exceptions.
  • In Unicode programs, both the syntax check and runtime checks check the rule inside and outside classes.

Note also that the concept "character-like" (or "character-type") is more strictly defined in Unicode programs than in non-Unicode programs.

  • In Unicode programs, only data objects with the character-like data types c, d, n, t, and string, or structures with purely character-like components are themselves character-like. Data objects with the types d, n, and t and structures with purely character-like components are handled like data objects with the type c (implicit casting is used).
  • In non-Unicode programs, any flat structures and byte-like data objects can be character-like. These operands of non-character-like data types are also handled like character-like data objects with the type c (implicit casting), regardless of their type.

This last point enables character string processing of byte strings in non-Unicode programs to produce the same results as explicit byte string processing in Unicode programs, if the statement is suitable as defined in the table of statements.


Note

When you use the character-like data objects d, n, and t in character string processing, note that the conversion rules appropriate to type do not apply to the assignment of interim results to target fields; instead the conversion rules for data type c apply.

Operands in Byte String Processing

If you use byte string processing (defined by the addition IN BYTE MODE in overloaded statements) and the statements GET BIT and SET BIT, the relevant operands must be byte-like. This is because the operands are processed by byte. This rule applies both inside and outside classes and in both Unicode and non-Unicode programs.