ABAP - Schlüsselwortdokumentation →  ABAP - Referenz →  Externe Daten verarbeiten →  ABAP-Datenbankzugriffe →  Open SQL →  Open SQL - Operanden und Ausdrücke →  Open SQL - Eingebaute Funktionen sql_func →  Open SQL - SQL-Funktionen → 

sql_exp - sql_string_func

Syntax

... func( arg1[, arg2] ... ) ...

Wirkung

Aufruf einer Zeichenkettenfunktion func als SQL-Ausdruck oder als Operand eines Ausdrucks in Open SQL. Die Argumente arg1, arg2, ... der Funktion werden in runden Klammern als kommaseparierte Liste angegeben. Nach der öffnenden und vor der schließenden Klammer muss ein Leerzeichen stehen.

Die folgende Tabelle zeigt die Zeichenkettenfunktionen, die als SQL-Ausdrücke angebbar sind, und die Anforderungen an die Argumente. Für die Bedeutung der Funktionen siehe die Zusammenstellung der SQL-Funktionen für Zeichenketten.

Syntax erlaubte Argumenttypen Ergebnistyp
CONCAT( expr1,expr2 ) siehe unten SSTRING, falls ein Argument den Typ SSTRING hat, ansonsten CHAR in der Länge des Ergebnisses
CONCAT_WITH_SPACE( expr1,expr2,spaces ) expr1, expr2: siehe unten

spaces: Literal oder konstante Hostvariable vom ABAP-Typ b, s, i, int8 größer 0 und kleiner gleich 1331
SSTRING, falls ein Argument den Typ SSTRING hat, ansonsten CHAR in der Länge des Ergebnisses
INSTR( expr,sub ) expr: siehe unten

sub: Literal oder konstante Hostvariable vom ABAP-Typ c, n, d oder t
INT4
LEFT( expr,len ) expr: siehe unten

len: Literal oder konstante Hostvariable vom ABAP-Typ b, s, i, int8 größer 0 und kleiner gleich 1333
SSTRING, falls expr den Typ SSTRING hat, ansonsten CHAR in der Länge des Ergebnisses
LENGTH( expr ) siehe unten INT4
LOWER( expr ) siehe unten SSTRING, falls expr den Typ SSTRING hat, ansonsten CHAR in der Länge von expr
LPAD( expr,len,src ) expr: siehe unten

len: Literal oder konstante Hostvariable vom ABAP-Typ b, s, i, int8 größer 0 und kleiner gleich 1333

src: Literal oder konstante Hostvariable vom ABAP-Typ c, d, t, n, string mit maximal 1333 Zeichen
SSTRING, falls expr den Typ SSTRING hat, ansonsten CHAR in der Länge len.
LTRIM( expr,char ) expr: siehe unten

char: Literal oder konstante Hostvariable vom ABAP-Typ c oder n der Länge 1
SSTRING, falls expr den Typ SSTRING hat, ansonsten CHAR in der Länge von expr
REPLACE( expr1,expr2,expr3 ) siehe unten SSTRING, falls ein Argument den Typ SSTRING hat, ansonsten CHAR in der maximal möglichen Länge des Ergebnisses
RIGHT( expr,len ) expr: siehe unten

len: Literal oder konstante Hostvariable vom ABAP-Typ b, s, i, int8 größer 0 und kleiner gleich 1333
SSTRING, falls expr den Typ SSTRING hat, ansonsten CHAR in der Länge des Ergebnisses
RPAD( expr,len,src ) expr: siehe unten

len: Literal oder konstante Hostvariable vom ABAP-Typ b, s, i, int8 größer 0 und kleiner gleich 1333

src: Literal oder konstante Hostvariable vom ABAP-Typ c, d, t, n, string mit maximal 1333 Zeichen
SSTRING, falls expr den Typ SSTRING hat, ansonsten CHAR in der Länge len.
RTRIM( expr,char ) expr: siehe unten

char: Literal oder konstante Hostvariable vom ABAP-Typ c oder n der Länge 1
SSTRING, falls expr den Typ SSTRING hat, ansonsten CHAR in der Länge von expr
SUBSTRING( expr,pos,len ) expr: siehe unten

pos: Literal, Hostvariable oder Hostausdruck vom ABAP-Typ b, s, i, int8
SSTRING, falls expr den Typ SSTRING hat, ansonsten CHAR in der Länge von len
UPPER( expr ) siehe unten SSTRING, falls expr den Typ SSTRING hat, ansonsten CHAR in der Länge von expr

Die Argumente expr, expr1, expr2 und expr3 können SQL-Ausdrücke und damit insbesondere einzelne Spalten, Literale, SQL-Funktionen, Hostvariablen oder Hostausdrücke sein. Die möglichen Datentypen sind die Dictionary-Typen CHAR, CLNT, CUKY, DATS, LANG, NUMC, TIMS, UNIT, SSTRING. Die möglichen Datentypen für Literale, Hostvariablen und Hostausdrücke sind die den obigen Dictionary-Typen zugeordneten ABAP-Typen. Die Ergebnistypen sind ebenfalls Dictionary-Typen.

Wenn ein Argument einer Zeichenkettenfunktion den Null-Wert hat, ist das Ergebnis der gesamten Zeichenkettenfunktion der Null-Wert.

Hinweis

Das Argument len der Funktionen RIGHT und SUBSTRING muss nur in statischen Klauseln eine echte Konstante sein. In einer in Klammern angegebenen dynamischen Klausel einer Open-SQL-Anweisung kann es sich auch um eine Variable handeln, die zur Laufzeit ausgewertet wird.

Beispiel

Die SELECT-Anweisung gibt die maximale Länge eines URL in der Datenbanktabelle SCARR zurück.

SELECT FROM scarr
       FIELDS MAX( length( url ) ) AS maxlen
       INTO @DATA(result).

cl_demo_output=>display( result ).

Beispiel

Verkettung mehrerer Spalten einer Datenbanktabelle mit CONCAT in eine zeichenartige Spalte im Programm DEMO_SQL_FUNCTION_CONCAT. Über LPAD und RPAD wird eine Ausrichtung erreicht. Mit dem Operator && ist eine solche Verkettung nicht möglich.

SELECT CONCAT_WITH_SPACE( CONCAT( carrid,
                          LPAD( carrname,21,' ' ) ),
                          RPAD( url,40,' ' ), 3 ) AS line
       FROM scarr
       INTO TABLE @DATA(result).

Ausführbares Beispiel

Zeichenkettenfunktionen