Ansicht
Dokumentation

ABAPFROM_CLAUSE - FROM CLAUSE

ABAPFROM_CLAUSE - FROM CLAUSE

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

SELECT, FROM

Kurzreferenz



... FROM ${ ${data_source $[AS tabalias$]$}
         $| join
         $| ${(source_syntax) $[AS tabalias$]$} $}
        $[ client_handling $] ...

Alternativen:

1. ... data_source

2. ... join

3. ... (source_syntax)

Zusatz:

... AS tabalias

Wirkung

Die Angaben hinter FROM legen fest, ob in einer Query auf eine DDIC-Datenbanktabelle, eine DDIC-View, eine CDS-Entität, eine SQL-Hierarchie oder eine interne Tabelle als Datenquelle data_source oder ob auf mehrere Datenquellen in einem Join-Ausdruck zugegriffen wird. Der optionale Zusatz AS definiert einen Aliasnamen für die Datenquelle. Die optionalen Zusätze client_handling beeinflussen die Mandantenbehandlung.

Alternative 1

... data_source


Wirkung

Angabe einer einzelnen Datenquelle data_source.

Hinweis

Wenn eine Datenquelle mehrfach hinter FROM in einem Join-Ausdruck aufgeführt wird, ist ein hinter AS definierter Aliasname tabalias notwendig, um Doppeldeutigkeiten zu vermeiden.

Beispiel

Angabe der DDIC-Datenbanktabelle SCARR als einzige Datenquelle einer SELECT-Anweisung.

Alternative 2

... join


Wirkung

Angabe eines Join-Ausdrucks, der mehrere Datenquellen miteinander verknüpft.

Beispiel

Angabe der DDIC-Datenbanktabellen SCARR und SPFLI in einem Join-Ausdruck.

Alternative 3

... (source_syntax)


Wirkung

Statt der statischen Angaben kann ein eingeklammertes Datenobjekt source_syntax angegeben werden, das bei Ausführung der Anweisung die bei den statischen Angaben gezeigte Syntax enthalten muss. Das Datenobjekt source_syntax kann ein zeichenartiges Datenobjekt oder eine Standardtabelle mit zeichenartigem Zeilentyp sein. Die Syntax in source_syntax ist unabhängig von Groß- und Kleinschreibung. Bei der Angabe einer internen Tabelle kann die Syntax auf mehrere Zeilen verteilt sein. Ungültige Syntax führt zu einer behandelbaren Ausnahme der Klasse CX_SY_DYNAMIC_OSQL_ERROR.

Der Zusatz AS für die statische Angabe eines Aliasnamens kann nur dann angegeben werden, wenn source_syntax ausschließlich den Namen einer einzelnen Datenquelle enthält, und hat für diese die gleiche Bedeutung wie bei deren statischen Angabe. In source_syntax darf nicht von außen auf statische Attribute oder Konstanten einer Klasse zugegriffen werden, wenn diese einen statischen Konstruktor hat und dieser noch nicht ausgeführt wurde. Siehe SQL-Injections über dynamische Tokens.

Hinweise

  • Falls source_syntax eine interne Tabelle mit Kopfzeile ist, wird die Kopfzeile, nicht der Tabellenkörper ausgewertet.
  • Der Zusatz AS kann ohne Einschränkung als Teil der dynamischen Syntax in source_syntax verwendet werden.
  • Bei der statischen Angabe von AS außerhalb der dynamischen Angabe darf source_syntax insbesondere keine Pfadausdrücke enthalten.
  • Die Klasse CL_ABAP_DYN_PRG enthält Methoden, welche die Erstellung korrekter und sicherer dynamischer Quelltexte unterstützen.

Beispiel

Ausgabe der Flugverbindungen (Flugdatum, Namen der Fluggesellschaft und Flugnummer) zu einem Abflugort und einem Zielort. Die FROM-Klausel inklusive innerer Joins ist dynamisch. Auch die Spaltenangabe hinter SELECT ist dynamisch. Die eingebbaren Werte werden indirekt über den Namen des jeweiligen Datenobjekts in der dynamischen Angabe verwendet und nicht direkt in diese verkettet. Ansonsten wäre eine besondere Sicherheitsüberprüfung für die Eingaben notwendig.

SELECT, dynamische Token-Angabe

Zusatz

... AS tabalias

Wirkung

Mit dem Zusatz AS kann man der Datenquelle einen Aliasnamen tabalias zuweisen, der nur während der SELECT-Anweisung gültig ist und dann an allen anderen Stellen, an denen diese Angabe der Datenquelle angesprochen wird, statt des tatsächlichen Namens verwendet werden muss.

Der Aliasname tabalias muss im Wesentlichen den Namenskonventionen für programminterne Bezeichner folgen und der Name table_line darf nicht verwendet werden. Dies wird im strikten Modus der Syntaxprüfung ab Release überprüft.

Hinweise

  • Dass ein Aliasname tabalias die Verwendung des ursprünglichen Namens data_source ausschließt, gilt prinzipiell auch für dynamische Tokens. Dies wird aber erst in den strikten Modi der Syntaxprüfung ab Release überprüft und führt gegebenenfalls zu einer Ausnahme.
  • Wenn ein Aliasname genau wie ein Zusatz der SELECT-Anweisung heißen soll, kann es notwendig sein, das Fluchtsymbol ! voranzustellen.
  • Ein Pfadausdruck in der Datenquelle der FROM-Klausel sollte einen mit AS definierten Aliasnamen haben. Dies wird im strikten Modus ab Release überprüft.
  • Außerhalb des strikten Modus der Syntaxprüfung ab Release kann ein Aliasname auch noch Minuszeichen (-) enthalten.

Beispiel

Definition von Aliasnamen für zwei Datenquellen eines Join-Ausdrucks und deren Verwendung in der SELECT-Liste und der ORDER BY-Klausel.






CL_GUI_FRONTEND_SERVICES - Frontend Services   ABAP Short Reference  
Diese Dokumentation steht unter dem Copyright der SAP AG.

Length: 9319 Date: 20240419 Time: 025131     sap01-206 ( 107 ms )