Get Example source ABAP code based on a different SAP table
Standard SAP Help for REPLACE
REPLACE IN TABLE itab>
Short Reference > • REPLACE IN TABLE ABAP Statement • FIRST OCCURRENCE OF REPLACE IN TABLE • ALL OCCURRENCES OF REPLACE IN TABLE • IN BYTE MODE REPLACE IN TABLE • IN CHARACTER MODE REPLACE IN TABLE
ABAP Syntax REPLACE [{FIRST OCCURRENCE}|{ALL OCCURRENCES} OF]pattern>> IN TABLE itab [table_range>] WITH new> [IN {CHARACTER|BYTE} MODE]> [replace_options]>.>
What does it do? The internal table itab> is scanned row-by-row for the character or byte strings specified by pattern>> and replaces any occurrences with the content of the operand new>. new> is a character-like expression position>.
itab> expects a standard table withoutsecondary table keys>. The rows in the table must be character-like or byte-like, depending on the 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 '(DM)' 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>.