Ansicht
Dokumentation

ABENCDS_SQL_FUNCTIONS_CHARACTER_V2 - CDS SQL FUNCTIONS CHARACTER V2

ABENCDS_SQL_FUNCTIONS_CHARACTER_V2 - CDS SQL FUNCTIONS CHARACTER V2

SUBST_MERGE_LIST - merge external lists to one complete list with #if... logic for R3up   Vendor Master (General Section)  
Diese Dokumentation steht unter dem Copyright der SAP AG.
SAP E-Book

- CDS-View-Entität, Zeichenkettenfunktionen

Die folgende Tabelle zeigt die in einer CDS-View-Entität möglichen SQL-Funktionen für Zeichenketten sowie die Anforderungen an die Argumente.

Funktion Ergebnis erlaubte Argumenttypen Ergebnistyp
CONCAT(arg1, arg2) Vekettet Zeicheketten in arg1 und arg2. Schließende Leerzeichen werden in arg1, arg2 und in den Ergebnissen ignoriert. Die Länge des Ergebnisses darf maximal 1333 sein. arg1, arg2: siehe unten SSTRING, falls ein Argument den Typ SSTRING hat, ansonsten CHAR in der Länge des Ergebnisses.
CONCAT_WITH_SPACE(arg1, arg2, spaces) Verkettung der Zeichenketten in arg1 und arg2 wie mit CONCAT, wobei soviele Leerzeichen zwischen arg1 und arg2 eingefügt werden, wie in spaces angegeben sind. Die Länge des Ergebnisses darf maximal 1333 sein. arg1, arg2: siehe unten \lbr\lbr spaces: positives Zahlenliteral größer als 0. Die Obergrenze für Zwischenräume liegt bei 1333 minus arg1 und arg2. SSTRING, falls ein Argument den Typ SSTRING hat, ansonsten CHAR in der Länge des Ergebnisses.
INSTR(arg, sub) Position des ersten Vorkommens der Zeichenkette aus sub in arg unter Beachtung der Groß- und Kleinschreibung. In arg 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. arg: siehe unten \lbr\lbr sub: nicht leeres Zeichenliteral INT4
LEFT(arg, len) Zeichenkette der Länge len mit den len linken Zeichen von arg ohne Berücksichtigung der schließenden Leerzeichen. Der Wert von len darf nicht größer als die Länge von arg sein. arg: siehe unten \lbr\lbr len: \lbr - positive Literale ungleich Null\lbr - geeignete Felder einer Datenquelle der aktuellen CDS-View-Entität \lbr - Pfadausdrücke, die ein geeignetes Feld einer Datenquelle ermitteln \lbr - Eingabeparameter aus der Parameterliste \lbr - Wiederverwendungsausdrücke mit $projection \lbr - Aggregatausdrücke \lbr - arithmetische Ausdrücke \lbr - Fallunterscheidungen \lbr - Cast-Ausdrücke \lbr - eingebaute Funktionen. \lbr Die Operanden müssen einen der folgenden Datentypen besitzen: INT1, INT2, INT4. SSTRING, falls arg den Typ SSTRING hat, ansonsten CHAR mit einer Länge len
LENGTH(arg) Anzahl der Zeichen in arg ohne Berücksichtigung schließender Leerzeichen. arg: siehe unten INT4
LOWER( arg ) Zeichenkette der Länge von arg, in der alle Groß- in Kleinbuchstaben umgesetzt sind. arg siehe unten, außer NUMC, DATS und TIMS Datentyp von arg in der Länge von arg
LPAD(arg, len, src) Zeichenkette der Länge len mit dem rechtsbündigen Inhalt von arg 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 arg 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 arg ist, wird rechts abgeschnitten. Wenn src leer und len größer als die Länge von arg ist, bleibt arg unverändert. arg: siehe unten \lbr\lbr len: positives Zahlenliteral größer 0 und kleiner gleich 1333 \lbr\lbr src: Zeichenliteral SSTRING, falls arg den Typ SSTRING hat, ansonsten CHAR mit einer Länge len
LTRIM(arg, char) Zeichenkette mit dem Inhalt von arg, in dem alle schließenden Leerzeichen und führenden Zeichen entfernt sind, die dem Zeichen in char entsprechen. Ein Leerzeichen in char ist signifikant. arg: siehe unten \lbr\lbr char: Zeichenliteral der Länge 1 SSTRING, falls arg den Typ SSTRING hat, ansonsten CHAR in der Länge von arg.
REPLACE(arg1, arg2, arg3) Zeichenkette arg1, in der unter Beachtung der Groß- und Kleinschreibung alle Vorkommen von arg2 durch den Inhalt von arg3 ersetzt sind. Schließende Leerzeichen werden in keinem Argument beachtet. Die Länge des Ergebnisses darf maximal 1333 sein. arg1, arg2, arg3: siehe unten SSTRING, falls arg1 oder arg3 den Typ SSTRING hat, ansonsten CHAR in der maximal möglichen Länge des Ergebnisses.
REPLACE_REGEXPR(PCRE => pcre, \lbr                VALUE => arg1, \lbr                WITH => arg2, \lbr                RESULT_LENGTH => res[, \lbr                OCCURRENCE => occ][, \lbr                CASE_SENSITIVE => case][, \lbr                SINGLE_LINE => bool][, \lbr                MULTI_LINE => bool][, \lbr                UNGREEDY => bool]) Ein Perl Compatible Regular Expression (PCRE) pcre wird in arg1 mit der in arg2 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. Einzeilige, mehrzeilige und genügsames Abgleichen von regulären Ausdrücken kann mit dem Parameter bool gesetzt werden. pcre: Perl Compatible Regular Expression (PCRE) \lbr \lbr arg1: siehe unten, mit Ausnahme von CLNT \lbr\lbr arg2: siehe unten, mit Ausnahme von CLNT \lbr\lbr res: positives Zahlenliteral größer als 0 und kleiner als oder gleich 1333 \lbr\lbr occ: Positives Zahlenliteral vom Typ INT1, INT2, oder INT4 größer als oder gleich 1. Alternativ kann ALL angegeben werden. In diesem Fall werden alle Vorkommen des Wertes arg1 ersetzt. \lbr\lbr case: 'X' oder ' '. Alternativ können die Zeichenliterale 'true' oder 'false' (von Groß-/Kleinschreibung abhängig) verwendet werden, die intern wie die Werte 'X' oder ' ‚ behandelt werden. Der Standardwert ist "true". \lbr\lbr bool: 'X' oder ' '. Alternativ können die Zeichenliterale 'true' oder 'false' (von Groß-/Kleinschreibung abhängig) verwendet werden, die intern wie die Werte 'X' oder ' ‚ behandelt werden. Der Standardwert ist 'false‘. SSTRING mit der Maximallänge von res.
RIGHT(arg,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 arg sein. arg: siehe unten \lbr\lbr len: \lbr - positive Literale ungleich Null\lbr - geeignete Felder einer Datenquelle der aktuellen CDS-View-Entität \lbr - Pfadausdrücke, die ein geeignetes Feld einer Datenquelle ermitteln \lbr - Eingabeparameter aus der Parameterliste \lbr - Wiederverwendungsausdrücke mit $projection \lbr - Aggregatausdrücke \lbr - arithmetische Ausdrücke \lbr - Fallunterscheidungen \lbr - Cast-Ausdrücke \lbr - eingebaute Funktionen. \lbr Die Operanden müssen einen der folgenden Datentypen besitzen: INT1, INT2, INT4. SSTRING, falls arg den Typ SSTRING hat, ansonsten CHAR mit einer Länge len
RPAD(arg, len, src) Zeichenkette der Länge len mit dem linksbündigen Inhalt von arg 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 arg 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 arg ist, wird rechts abgeschnitten. Wenn src leer und len größer als die Länge von arg ist, bleibt arg unverändert. arg: siehe unten \lbr\lbr len: positives Zahlenliteral größer 0 und kleiner gleich 1333 \lbr\lbr src: Zeichenliteral SSTRING, falls arg den Typ SSTRING hat, ansonsten CHAR mit einer Länge len
RTRIM(arg, char) Zeichenkette mit dem Inhalt von arg, in dem alle schließenden Leerzeichen und schließenden Zeichen entfernt sind, die dem Zeichen in char entsprechen. Ein Leerzeichen in char ist signifikant. arg: siehe unten \lbr\lbr char: Zeichenliteral der Länge 1 SSTRING, falls arg den Typ SSTRING hat, ansonsten CHAR in der Länge von arg.
SUBSTRING(arg, pos, len) Teilfeld von arg ab der Position pos in der Länge len. pos und len müssen so angegeben werden, dass das Teilfeld innerhalb von arg liegt. arg: siehe unten \lbr\lbr pos und len: \lbr - positive Literale ungleich Null\lbr - geeignete Felder einer Datenquelle der aktuellen CDS-View-Entität \lbr - Pfadausdrücke, die ein geeignetes Feld einer Datenquelle ermitteln \lbr - Eingabeparameter aus der Parameterliste \lbr - Wiederverwendungsausdrücke mit $projection \lbr - Aggregatausdrücke \lbr - arithmetische Ausdrücke \lbr - Fallunterscheidungen \lbr - Cast-Ausdrücke \lbr - eingebaute Funktionen. \lbr Die Operanden müssen einen der folgenden Datentypen besitzen: INT1, INT2, INT4. SSTRING, falls arg den Typ SSTRING hat, ansonsten CHAR oder NUMC mit einer Länge von mindestens len
UPPER( arg ) Zeichenkette der Länge von arg, in der alle Klein- in Großbuchstaben umgesetzt werden. Siehe unten, außer NUMC, DATS und TIMS Datentyp von arg in der Länge von arg

Als Argumente arg können angegeben werden:

  • Folgende eingebaute Funktionen und Ausdrücke, wenn sie einen passenden Typ zurück geben:

  • Typanpassungen mit CAST

Die erlaubten Argumenttypen für arg, arg1, arg2 und arg3 sind CHAR, CLNT, LANG, NUMC, CUKY, UNIT, DATS, TIMS, SSTRING.

Bei Funktionen, bei denen eine explizite Länge len angegeben ist, wird die tatsächliche Länge des Ergebnisses bei der Aktivierung der CDS-View-Entität festgelegt und ist mindestens so groß wie len.

Bei allen Funktionen außer LPAD und RPAD werden die schließenden Leerzeichen aller Argumente vor der eigentlichen Verarbeitung und die schließenden Leerzeichen des Ergebnisses vor der Rückgabe entfernt. Bei LPAD und RPAD bleiben die schließenden Leerzeichen des Arguments src erhalten. Bei UPPER und LOWER spielt die Behandlung schließender Leerzeichen keine Rolle, da die Länge des Arguments erhalten bleibt.

Hinweise

  • Die Zeichen des Surrogat-Bereichs der System-Codepage UTF-16 werden von den CDS-Zeichenkettenfunktionen wie zwei Zeichen behandelt. Dies ist bei der Bestimmung der Länge zu berücksichtigen und es ist darauf zu achten, solche Zeichen nicht versehentlich zu zerschneiden. Die Funktionen UPPER und LOWER ändern die Zeichen des Surrogat-Bereichs nicht.
  • Bei der Funktion REPLACE ist zu beachten, dass die maximal mögliche Länge des Ergebnisses 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 arg1 durch die Länge von arg2 multipliziert mit der Länge von arg3.
  • Die Funktion REPLACE_REGEXPR greift auf die in der SAP-HANA-Datenbank implementierte PCRE1-Bibliothek zu.
  • In CDS-View-Entitäten lässt die Funktion REPLACE_REGEXPR mehr Parameter zu als die gleiche Funktion in ABAP SQL (z.B. UNGREEDY). Dennoch kann diese Funktionalität kann über die Syntax Perl Compatible Regular Expression implementiert werden.

Beispiel

Die folgende CDS-View-Entität wendet eingebaute SQL-Funktionen für Zeichenketten in der SELECT-Liste auf Spalten der DDIC-Datenbanktabelle DEMO_EXPRESSIONS an. Das Programm DEMO_CDS_SQL_FUNC_STRING_VE greift mit SELECT auf die View zu.






Fill RESBD Structure from EBP Component Structure   TXBHW - Original Tax Base Amount in Local Currency  
Diese Dokumentation steht unter dem Copyright der SAP AG.

Length: 36269 Date: 20240523 Time: 155848     sap01-206 ( 510 ms )