CHARACTER or BYTE MODE addition. Byte or character strings
that cover multiple table rows are not replaced.
The table_range addition can be
used to restrict the search range in the table. When searching in
individual table rows, the other additions operate in the same way as in
the statement REPLACE pattern IN
for elementary character or byte strings, with an extra addition,
REPLACEMENT LINE , returning the
row number of an occurrence.
In string processing for row types of fixed length, trailing blanks
are respected, whereas with new they are ignored.
Latest notes: Replacements using REPLACE IN TABLE give better
performance than running a LOOP and
using REPLACE to make replacements
in individual rows.
System Fields
sy-subrc Meaning
0The search string was replaced by the content of new and the
full result is available in the table row(s).
2The search pattern was replaced by the content of new and
the result of the replacement was truncated on the right in at least one
table row.
4The search pattern in pattern was not found in the internal
table.
8The operands pattern or new do not contain
interpretable double-byte characters.
The values of sy-tabix and sy-fdpos are not changed.
Example ABAP Coding A simple "DM-Euro Conversion" .
DATA itab TYPE TABLE OF string.
APPEND 'Beer - 3 DM' TO itab.
APPEND 'Pizza - 8 DM' TO itab.
REPLACE ALL OCCURRENCES OF REGEX '\b(DM)\b'
IN TABLE itab WITH 'EUR'
RESPECTING CASE.
Runtime Exceptions
Catchable Exceptions
CX_SY_REPLACE_INFINITE_LOOP
Reason for error: Substring of length 0 generates an endless loop
when searching for all occurrences.
Runtime error: REPLACE_INFINITE_LOOP
CX_SY_TAB_RANGE_OUT_OF_BOUNDS
Reason for error: Illegal offset or row specification in the addition of
FROM ... OFFSET ... TO OFFSET .
Runtime error: INVALID_TABLE_RANGE
CX_SY_INVALID_REGEX
Reason for error: Illegal expression after the addition REGEX .
Runtime error: INVALID_REGEX
Documentation extract taken from SAP system, � Copyright SAP AG. All rights reserved