SAP NetWeaver AS ABAP Release 752, ©Copyright 2017 SAP AG. Alle Rechte vorbehalten.
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