Mit den folgenden Varianten der Anweisung REPLACE:
1. REPLACE [{FIRST OCCURRENCE}|{ALL OCCURRENCES} OF] pattern
IN dobj WITH new.
2. REPLACE SECTION [OFFSET off] [LENGTH len] OF dobj WITH new.
werden Zeichen bzw. Bytes der Variablen dobj durch Zeichen bzw. Bytes des Datenobjekts newersetzt. Dabei werden ein muster- (Variante 1) und ein positionsbasiertes Ersetzen (Variante 2) unterschieden.
Bei der Durchführung der Ersetzung wird implizit ein Zwischenergebnis ohne Längenbegrenzung gebildet und das Zwischenergebnis in das Datenobjekt dobjübertragen. Falls die Länge des Zwischenergebnisses länger als die Länge von dobj ist, wird bei Datenobjekten fester Länge rechts abgeschnitten. Falls die Länge des Zwischenergebnisses kürzer als die Länge von dobj ist, wird bei Datenobjekten fester Länge rechts mit Leerzeichen bzw. hexadezimal 0 aufgefüllt. Datenobjekte variabler Länge werden angepasst. Falls bei der Zuweisung das Zwischenergebnis rechts abgeschnitten wird, wird sy-subrc auf 2 gesetzt.
Bei der Zeichenkettenverarbeitung werden bei Datenobjekten dobj fester Länge die schließenden Leerzeichen berücksichtigt, bei newnicht.