Die Anweisung CONCATENATE verkettet getrennte Zeichenfolgen zu einer Zeichenfolge:
CONCATENATE <c1> ... <cn> INTO <c> [SEPARATED BY <s>].
Die Felder <c1> bis <cn> werden verkettet und <c> zugewiesen. Leerzeichen am Ende der einzelnen Zeichenfolgen werden bei dieser Operation ignoriert.
Mit dem Zusatz SEPARATED BY <s> kann eine Zeichenkette <s> angegeben werden, die in ihrer Länge zwischen die einzelnen Felder eingefügt wird.
Wenn das Ergebnis in <c> paßt, wird SY-SUBRC auf 0 gesetzt. Falls das Ergebnis abgeschnitten wird, wird SY-SUBRC auf 4 gesetzt.
DATA: c1(10) TYPE c VALUE 'Sum',
c2(3) TYPE c VALUE 'mer',
c3(5) TYPE c VALUE 'holi ',
c4(10) TYPE c VALUE 'day',
c5(30) TYPE c,
sep(3) TYPE c VALUE ' - '.
CONCATENATE c1 c2 c3 c4 INTO c5.
WRITE c5.
CONCATENATE c1 c2 c3 c4 INTO c5 SEPARATED BY sep.
WRITE / c5.
Listenausgabe:
Summerholiday
Sum - mer - holi - day
In C1 bis C5 werden die Leerzeichen am Ende ignoriert, während sie in der Trennzeichenfolge SEP erhalten bleiben.