Ansicht
Dokumentation

ABENSQL_STRING_FUNC - SQL STRING FUNC

ABENSQL_STRING_FUNC - SQL STRING FUNC

General Material Data   rdisp/max_wprun_time - Maximum work process run time  
Diese Dokumentation steht unter dem Copyright der SAP AG.
SAP E-Book

- Zeichenkettenfunktionen

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

Wirkung

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

Die folgende Tabelle zeigt die Zeichenkettenfunktionen, die als SQL-Ausdrücke angebbar sind, und die Anforderungen an die Argumente. Ein Wert ""x"" in der Spalte Tabellenpuffer bedeutet, dass die Funktion im Tabellenpuffer ausgeführt werden kann und dass die Verwendung einer solchen Funktion nicht die Tabellenpufferung umgeht.

Syntax Bedeutung erlaubte Argumenttypen Ergebnistyp Tabellenpuffer
CONCAT( sql_exp1,sql_exp2 ) Vekettet Zeicheketten in sql_exp1 und sql_exp2. Schließende Leerzeichen werden in sql_exp1, sql_exp2 und in den Ergebnissen ignoriert. Die Länge des Ergebnisses darf maximal 1333 sein. Siehe unten SSTRING, falls ein Argument den Typ SSTRING hat, ansonsten CHAR in der Länge des Ergebnisses x
CONCAT_WITH_SPACE( sql_exp1,sql_exp2,spaces ) Verkettet Strings in sql_exp1 und sql_exp2 wie mit CONCAT. Die Anzahl der in spaces festgelegten Leerzeichen wird zwischen sql_exp1 und sql_exp2 eingefügt. Die Länge des Ergebnisses darf maximal 1333 sein. sql_exp2: siehe unten \lbr\lbr spaces: Literal oder Hostkonstante vom ABAP-Typ b, s, i, int8 größer 0 und kleiner gleich 1333 SSTRING, falls ein Argument den Typ SSTRING hat, ansonsten CHAR in der Länge des Ergebnisses x
INITCAP( sql_exp ) String mit Länge sql_exp, in dem der erste Buchstabe eines Wortes in einen Großbuchstaben und alle anderen Buchstaben in Kleinbuchstaben umgesetzt werden. Ein Wort kann wie folgt eingegrenzt werden: Anfang eines Strings, Leerzeichen, neue Zeile, Seitenvorschub, Wagenrücklauf, Zeilenvorschub und alles hinter ! " # $ % & ' ( ) * + , - . / : ; < = > ? @ [ \ ] ^ _ ` { | } ~. Siehe unten SSTRING, falls sql_exp den Typ SSTRING hat, ansonsten CHAR in der Länge von sql_exp -
INSTR( sql_exp,sub ) Position des ersten Vorkommens der Zeichenkette aus sub in sql_exp unter Beachtung der Groß- und Kleinschreibung. In sql_exp werden führende Leerzeichen berücksichtigt und schließende Leerzeichen ignoriert. In sub werden alle Leerzeichen berücksichtigt. sub muss mindestens ein Zeichen enthalten. Wenn kein Vorkommen gefunden wird, ist das Ergebnis 0. sql_exp: siehe unten \lbr\lbr sub: Literal oder Hostkonstante vom ABAP-Typ c, n, d oder t INT4 -
LEFT( sql_exp,len ) Zeichenkette der Länge len mit den len linken Zeichen von sql_exp ohne Berücksichtigung der schließenden Leerzeichen. Der Wert von len darf nicht größer als die Länge von sql_exp sein. sql_exp: siehe unten \lbr\lbr len: SQL-Ausdruck vom ABAP-Typ b, s, i, int8 größer 0 und kleiner gleich 1333 SSTRING, falls sql_exp den Typ SSTRING hat, ansonsten CHAR in der Länge des Ergebnisses x
LENGTH( sql_exp ) Anzahl der Zeichen in sql_exp ohne Berücksichtigung schließender Leerzeichen. siehe unten INT4 x
LIKE_REGEXPR( pcre = pcre, \lbr              value = sql_exp$[,   \lbr              case_sensitive = case$] ) Prüft, ob in sql_exp Perl Compatible Regular Expressions (PCRE) pcre vorkommen und gibt 1 zurück wenn ja und 0, wenn nein. Die Groß- und Kleinschreibung wird bei der Suche standardmäßig beachtet, was aber mit dem Parameter case übersteuert werden kann. pcre: Perl Compatible Regular Expression (PCRE) \lbr sql_exp: siehe unten \lbr case: 'X' oder ' ' INT4 -
LOCATE( sql_exp, sub$[,start$[,occ$]$] ) Gibt die Stelle eines Substrings sub in sql_exp (mit Groß-/Kleinschreibung) zurück. Sowohl in sql_exp als auch in sub werden alle Leerzeichen berücksichtigt und es muss mindestens ein Zeichen enthalten sein. start und occ sind optionale Parameter. occ darf nur bei der Angabe von start angegeben werden. Mit start wird der Offset für den Suchanfang angegeben und mit occ wird die Anzahl Vorkommen ermittelt. \lbr \lbr Hinweise zum Ergebnis: \lbr Wenn keine Vorkommen ermittelt werden oder occ kleiner 1 ist, ist das Ergebnis 0. \lbr Wenn sql_exp, sub oder occ als Null-Werte angegeben sind, ist das Ergebnis 0. \lbr Wenn start größer 0 ist, wird die Übereinstimmung ab dieser Stelle durchgeführt. \lbr Wenn start gleich 0, NULL oder nicht angegeben ist, wird die Übereinstimmung ab der ersten Stelle durchgeführt. Die Einstellung 1 für start hat die gleiche Wirkung. \lbr Wenn start kleiner 0 ist, wird die Anfangsstelle ab dem Ende des Strings berücksichtigt, d.h. bei start gleich -2, ist die Anfangsstelle das vorletzte Zeichen des Strings. Die Übereinstimmung wird dann in die entgegengesetzte Richtung, rechts nach links, durchgeführt. \lbr Wenn occ angegeben wird, wird die Übereinstimmungsstelle zurückgegeben. Falls mit dem angegebenen Vorkommen keine Übereinstimmung ermittelt wird, ist das Ergebnis gleich 0. \lbr Wenn occ nicht angegeben wird, wird die erste Übereinstimmungsstelle zurückgegeben. Eine Einstellung von 1 für occ wirkt wie eine Nichtangabe. sql_exp: siehe unten \lbr \lbr sub: Literal oder Hostkonstante mit dem ABAP-Typ c, n, d oder t \lbr \lbrocc: i oder int8 \lbr \lbr start: i oder int8 INT4 -
LOCATE_REGEXPR( pcre = pcre, \lbr                value = sql_exp$[, \lbr                occurrence = occ$]$[, \lbr                case_sensitive = case$]$[, \lbr                start = start$]$[, \lbr                group = group$] ) Durchsucht sql_exp nach einem Perl Compatible Regular Expression (PCRE)-Muster pcre und gibt den Offset der Übereinstimmung zurück. Die weiteren Parameter sind optional. Mit occ wird die Anzahl Vorkommen von pcre ermittelt. Die Groß- und Kleinschreibung wird bei der Suche standardmäßig beachtet, was aber mit dem Parameter case übersteuert werden kann. Mit dem Parameter start wird der Offset als Anfangstelle der Suche angegeben. Mit dem Parameter group wird die Nummer der Gruppe des übereinstimmenden Substrings angegeben. \lbr \lbr Wenn occ nicht größer 0 ist oder start oder group kleiner 0 sind, ist das Ergebnis ein Null-Wert. pcre: Perl Compatible Regular Expression (PCRE) \lbr \lbr sql_exp: siehe unten \lbr \lbrocc: Literal oder Hostkonstante mit dem ABAP-Typ b, s, i oder int8 größer 0 und kleiner gleich 1333; Ausdrücke sind auch möglich, solange sie einen Integer vom Typ INT4 zurückgeben \lbr \lbr case: 'X' oder ' ' \lbr \lbr start: i oder int8 \lbr \lbr group: i oder int8 INT4 -
LOCATE_REGEXPR_AFTER( pcre = pcre, \lbr                      value = sql_exp$[, \lbr                      occurrence = occ$]$[, \lbr                      case_sensitive = case$]$[, \lbr                      start = start$]$[, \lbr                      group = group$] ) Durchsucht sql_exp nach einem Perl Compatible Regular Expression (PCRE)-Muster pcre und gibt den Offset der Übereinstimmung plus 1 zurück. Die weiteren Parameter sind optional. Mit occ wird die Anzahl Vorkommen von pcre ermittelt. Die Groß- und Kleinschreibung wird bei der Suche standardmäßig beachtet, was aber mit dem Parameter case übersteuert werden kann. Mit dem Parameter start wird der Offset als Anfangstelle der Suche angegeben. Mit dem Parameter group wird die Nummer der Gruppe des übereinstimmenden Substrings angegeben. \lbr \lbr Wenn occ nicht größer 0 ist oder start oder group kleiner 0 sind, ist das Ergebnis ein Null-Wert. pcre: Perl Compatible Regular Expression (PCRE) \lbr \lbr sql_exp: siehe unten \lbr \lbrocc: Literal oder Hostkonstante mit dem ABAP-Typ b, s, i oder int8 größer 0 und kleiner gleich 1333; Ausdrücke sind auch möglich, solange sie einen Integer vom Typ INT4 zurückgeben \lbr \lbr case: 'X' oder ' ' \lbr \lbr start: i oder int8 \lbr \lbr group: i oder int8 INT4 -
LOWER( sql_exp ) Zeichenkette der Länge von sql_exp, in der alle Groß- in Kleinbuchstaben umgesetzt sind. Siehe unten SSTRING, falls sql_exp den Typ SSTRING hat, ansonsten CHAR in der Länge von sql_exp x
LPAD( sql_exp,len,src ) Zeichenkette der Länge len mit dem rechtsbündigen Inhalt von sql_exp ohne schließende Leerzeichen, in der führende Leerzeichen, welche durch eine Verlängerung entstehen, mit den Zeichen aus dem Argument src unter Berücksichtigung aller Leerzeichen ersetzt sind. Führende Leerzeichen aus sql_exp bleiben erhalten. Wenn mehr Zeichen benötigt werden, als in src vorhanden sind, wird der Inhalt von src wiederholt verwendet. Wenn len kleiner als die Länge von sql_exp ist, wird rechts abgeschnitten. Wenn src leer und len größer als die Länge ist. sql_exp: siehe unten \lbr\lbr len: Literal oder Hostkonstante vom ABAP-Typ b, s, i, int8 größer 0 und kleiner gleich 1333 \lbr\lbr src: Literal oder Hostkonstante vom ABAP-Typ c, d, t, n, string mit maximal 1333 Zeichen SSTRING, falls sql_exp den Typ SSTRING hat, ansonsten CHAR in der Länge len. -
LTRIM( sql_exp,char ) Zeichenkette mit dem Inhalt von sql_exp, in dem alle schließenden Leerzeichen und führenden Zeichen entfernt sind, die dem Zeichen in char entsprechen. Ein Leerzeichen in char ist signifikant. sql_exp: siehe unten \lbr\lbr char: Literal oder Hostkonstante vom ABAP-Typ c oder n der Länge 1 SSTRING, falls sql_exp den Typ SSTRING hat, ansonsten CHAR in der Länge von sql_exp -
OCCURRENCES_REGEXPR( pcre = pcre, \lbr                     value = sql_exp$[,   \lbr                     case_sensitive = case$] ) Zählt alle Fundstellen einer Perl Compatible Regular Expression (PCRE) pcre in sql_exp und gibt die Anzahl der Fundstellen zurück. Die Groß- und Kleinschreibung wird bei der Suche standardmäßig beachtet, was aber mit dem Parameter case übersteuert werden kann. pcre: Perl Compatible Regular Expression (PCRE) \lbr sql_exp: siehe unten \lbr case: 'X' oder ' ' INT4 -
REPLACE( sql_exp1,sql_exp2,sql_exp3 ) Zeichenkette sql_exp1, in der unter Beachtung der Groß- und Kleinschreibung alle Vorkommen von sql_exp2 durch den Inhalt von sql_exp3 ersetzt sind. Schließende Leerzeichen werden in keinem Argument beachtet. Die Länge des Ergebnisses darf maximal 1333 sein. Siehe unten SSTRING, falls ein Argument den Typ SSTRING hat, ansonsten CHAR in der maximal möglichen Länge des Ergebnisses -
REPLACE_REGEXPR( pcre = pcre, \lbr                 value = sql_exp1, \lbr                 with = sql_exp2$[,\lbr                 occurrence = occ$]$[,\lbr                 case_sensitive = case$]$[,\lbr                 start = start$]$[, \lbr                 group = group$] ) Ein Perl Compatible Regular Expression (PCRE) pcre wird in sql_exp1 mit der in sql_exp2 angegebenen Zeichenkette ersetzt. occ ist optional und bestimmt die Anzahl der zu ersetzenden Fundstellen von pcre. Standardmäßig werden alle Fundstellen ersetzt. Die Groß- und Kleinschreibung wird bei der Suche standardmäßig beachtet, was aber mit dem Parameter case übersteuert werden kann. Mit dem Parameter start wird der Offset als Anfangstelle der Suche angegeben. Mit dem Parameter group wird die Nummer der Gruppe des übereinstimmenden Substrings angegeben. pcre: Perl Compatible Regular Expression (PCRE) \lbr \lbr sql_exp1: siehe unten \lbr \lbrsql_exp2: siehe unten \lbr \lbrocc: Literal oder Hostkonstante mit dem ABAP-Typ b, s, i oder int8 größer 0 und kleiner gleich 1333; Ausdrücke sind auch möglich, solange sie einen Integer vom Typ INT4 zurückgeben \lbr \lbr case: 'X' oder ' ' \lbr \lbr start: i oder int8 \lbr \lbr group: i oder int8 SSTRING -
RIGHT( sql_exp,len ) Zeichenkette der Länge len mit den len rechten Zeichen von arg ohne Berücksichtigung der schließenden Leerzeichen. Der Wert von len darf nicht größer als die Länge von sql_exp sein. sql_exp: siehe unten \lbr\lbr len: SQL-Ausdruck vom ABAP-Typ b, s, i, int8 größer 0 und kleiner gleich 1333 SSTRING, falls sql_exp den Typ SSTRING hat, ansonsten CHAR in der Länge des Ergebnisses x
RPAD( sql_exp,len,src ) Zeichenkette der Länge len mit dem linksbündigen Inhalt von sql_exp ohne schließende Leerzeichen, in der schließende Leerzeichen, welche durch eine Verlängerung entstehen, mit den Zeichen aus dem Argument src unter Berücksichtigung aller Leerzeichen ersetzt sind. Führende Leerzeichen aus sql_exp bleiben erhalten. Wenn mehr Zeichen benötigt werden, als in src vorhanden sind, wird der Inhalt von src wiederholt verwendet. Wenn len kleiner als die Länge von sql_exp ist, wird rechts abgeschnitten. Wenn src leer und len größer als die Länge von sql_exp ist, bleibt sql_exp unverändert. sql_exp: siehe unten \lbr\lbr len: Literal oder Hostkonstante vom ABAP-Typ b, s, i, int8 größer 0 und kleiner gleich 1333 \lbr\lbr src: Literal oder Hostkonstante vom ABAP-Typ c, d, t, n, string mit maximal 1333 Zeichen SSTRING, falls sql_exp den Typ SSTRING hat, ansonsten CHAR in der Länge len. -
RTRIM( sql_exp,char ) Zeichenkette mit dem Inhalt von sql_exp, in dem alle schließenden Leerzeichen und schließenden Zeichen entfernt sind, die dem Zeichen in char entsprechen. Ein Leerzeichen in char ist signifikant. sql_exp: siehe unten \lbr\lbr char: Literal oder Hostkonstante vom ABAP-Typ c oder n der Länge 1 SSTRING, falls sql_exp den Typ SSTRING hat, ansonsten CHAR in der Länge von sql_exp -
SUBSTRING( sql_exp,pos,len ) Teilfeld von sql_exp ab der Position pos in der Länge len. pos und len müssen so angegeben werden, dass das Teilfeld innerhalb von sql_exp liegt. \lbr \lbr Die Funktion wird immer im Tabellenpuffer ausgeführt. sql_exp: siehe unten \lbr\lbr pos: SQL-Ausdrücke vom ABAP-Typ b, s, i, int8 \lbr\lbr len: SQL-Ausdrücke vom ABAP-Typ b, s, i, int8 Wenn len eine Konstante ist: \lbrSSTRING wenn sql_exp vom Typ SSTRING ist, sonst CHAR mit der Länge von len \lbr wenn len keine Konstante ist: \lbr das Ergebnis hat den gleichen Datentyp wie der erste Parameter (sql_exp) x
SUBSTRING_REGEXPR( pcre = pcre, \lbr                   value = sql_exp$[, \lbr                   occurrence = occ$]$[, \lbr                   case_sensitive = case$]$[, \lbr                   start = start$]$[, \lbr                   group = group$] ) Durchsucht sql_exp nach einem Perl Compatible Regular Expression (PCRE)-Muster pcre und gibt den übereinstimmenden Substring zurück. Die weiteren Parameter sind optional. Mit occ wird die Anzahl Vorkommen von pcre ermittelt. Die Groß- und Kleinschreibung wird bei der Suche standardmäßig beachtet, was aber mit dem Parameter case übersteuert werden kann. Mit dem Parameter start wird der Offset als Anfangstelle der Suche angegeben. Mit dem Parameter group wird die Nummer der Gruppe des übereinstimmenden Substrings angegeben. \lbr \lbr Wenn occ nicht größer 0 ist oder start oder group kleiner 0 sind, ist das Ergebnis ein Null-Wert. pcre: Perl Compatible Regular Expression (PCRE) \lbr \lbr sql_exp: siehe unten \lbr \lbrocc: Literal oder Hostkonstante mit dem ABAP-Typ b, s, i oder int8 größer 0 und kleiner gleich 1333; Ausdrücke sind auch möglich, solange sie einen Integer vom Typ INT4 zurückgeben \lbr \lbr case: 'X' oder ' ' \lbr \lbr start: i oder int8 \lbr \lbr group: i oder int8 Der gleiche Typ wie sql_exp. -
UPPER( sql_exp ) Zeichenkette der Länge von sql_exp, in der alle Klein- in Großbuchstaben umgesetzt sind. Siehe unten SSTRING, falls sql_exp den Typ SSTRING hat, ansonsten CHAR in der Länge von sql_exp x

Die Argumente sql_exp, sql_exp1, sql_exp2 und sql_exp3 können beliebige SQL-Ausdrücke der passenden Datentypen 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.

Hinweise

  • Bei der Funktion REPLACE ist zu beachten, dass die maximal mögliche Länge des Ergebnisse leicht über der erlaubten Länge von 1333 liegen kann, was zu einem Syntaxfehler führt. Die maximal mögliche Länge berechnet sich im Wesentlichen aus einer Division der Länge von sql_exp1 durch die Länge von sql_exp2 multipliziert mit der Länge von sql_exp3.
  • Alle Zeichenkettenfunktionen mit dem Ergebnistyp SSTRING können maximal 1333 Zeichen haben. Die Längenbeschränkung kann umgangen werden, indem die Typkonvertierungsfunktion TO_CLOB auf dem Ergebnis verwendet wird, welches dadurch in den Typ STRING konvertiert wird.
  • ABAP-SQL-Funktionen erzwingen den strikten Modus der Syntaxprüfung ab Release .
  • Die Funktionen, die den Parameter pcre enthalten, greifen auf die in der SAP-HANA-Datenbank implementierten PRCE1-Bibliothek zu. Sie erzwingen den strikten Modus der Syntaxprüfung ab Release . Die regulären Ausdrücke des allgemeinen ABAP arbeiten mit der PCRE2-Bibliothek, die im ABAP Kernel implementiert ist.

Beispiel

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

Beispiel

Verkettung mehrerer Spalten einer DDIC-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.






PERFORM Short Reference   PERFORM Short Reference  
Diese Dokumentation steht unter dem Copyright der SAP AG.

Length: 39481 Date: 20240523 Time: 090515     sap01-206 ( 1216 ms )