Ansicht
Dokumentation
ABAPFROM_CLAUSE - FROM CLAUSE
Vendor Master (General Section) SUBST_MERGE_LIST - merge external lists to one complete list with #if... logic for R3upDiese Dokumentation steht unter dem Copyright der SAP AG.
SELECT, FROM
... FROM ${ ${data_source $[AS tabalias$]$}
$| join
$| ${(source_syntax) $[AS tabalias$]$} $}
$[ client_handling $] ...
Alternativen:
1. ... data_source
2. ... join
3. ... (source_syntax)
Zusatz:
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 )