CONVERT TEXT text INTO SORTABLE CODE hex.
The content of the operand
text is converted to a sortable byte string and
the result is assigned to the variable
hex. The data object
text itself remains unchanged.
text is a
character-like expression position.
text must be of type
and the data object
hex must be byte-like. The content of
must contain valid characters. The sortable byte string is defined by platform such that a size comparison
or standard sort of several of these fields produces an order in which the source fields
text are sorted by the
locale defined in the current
The text environment is set when an internal session is opened or by using the statement
If the data object
hex is of type
x and its length
is not sufficient for the byte string, an exception that cannot be handled is raised. If the length
is greater than that of the byte string, it is filled with hexadecimal 0 on the right. The minimum length
for all platforms is calculated as 24 times the length of
text plus 24, but
can be significantly shorter for some platforms. If
hex is of type
xstring, its length is adapted automatically.
CONVERT TEXTstatement to work, the profile parameter install/collate/active cannot have the value 0.
CONVERT TEXTstatement is designed to fill an index column (in internal tables or extracts) by which the rows of the table or extracts can be sorted by locale. Since internal tables and extracts can also be sorted by locale directly by using the
AS TEXTaddition of the
CONVERT TEXTis especially useful in the following cases:
- If an internal table is sorted by locale and then subjected to a binary search using the statement
- An internal table or extract is to be sorted more than once by locale. Using a sortable byte string ensures better performance than when using the
- Indices for database tables are to be structured in accordance with a locale.
- Textual comparisons are to be made between character-like data objects.
The characters "a" and "Z" are compared directly after they have been converted by CONVERT
TEXT. While "Z" is in front of "a" for the majority of code pages in direct comparisons, the comparison of the converted values returns the expected textual order. See also the
SORT for internal tables.
DATA: ax TYPE xstring, zx TYPE xstring. IF 'a' > 'Z'. WRITE / `'a' > 'Z'`. ELSE. WRITE / `'a' < 'Z'`. ENDIF. CONVERT TEXT: 'a' INTO SORTABLE CODE ax, 'Z' INTO SORTABLE CODE zx. IF ax > zx. WRITE / `'a' > 'Z'`. ELSE. WRITE / `'a' < 'Z'`. ENDIF.
Cause: One of the operands has an invalid data type.
Cause: The source field has invalid content.
Cause: The target field is too small.