Ansicht
Dokumentation

ABENNEWS-740_SP05-ABAP_SQL - NEWS-740 SP05-ABAP SQL

ABENNEWS-740_SP05-ABAP_SQL - NEWS-740 SP05-ABAP SQL

ROGBILLS - Synchronize billing plans   CL_GUI_FRONTEND_SERVICES - Frontend Services  
Diese Dokumentation steht unter dem Copyright der SAP AG.
SAP E-Book

zu Release 7.40, SP05





Kommaseparierte Listen

Alle Auflistungen von Operanden in können und sollten ab Release 7.40, SP05 als kommaseparierte Listen angegeben werden. Bislang war eine kommaseparierte Liste nur bei der Angabe einzelner Zielfelder in den runden Klammern hinter INTO bei SELECT und bei der Angabe von Datenobjekten in runden Klammern hinter WHERE möglich. In Programmen der ABAP-Sprachversion , in denen die Programmeigenschaft Festpunktarithmetik eingeschaltet ist, sind kommaseparierte Liste jetzt auch möglich:

  • Angabe von Spalten, Aggregat- oder SQL-Ausdrücken in der SELECT-Liste

  • Angabe der Änderungsausdrücke hinter SET

Die Angabe von leerzeichenseparierten Listen wird dadurch obsolet. Wenn eine dieser Listen durch Kommata getrennt ist, wird die Syntaxprüfung in einem strikten Modus ausgeführt, welche die Anweisung strenger behandelt als die normale Syntaxprüfung.

Die Einschränkung, dass bei den kommaseparierten Listen hinter INTO und IN hinter der öffnenden Klammer kein Leerzeichen stehen darf, wenn mindestens ein Komma vorkommt, d.h. mehr als ein Datenobjekt angegeben ist, besteht ab SP05 nicht mehr.



Fluchtsymbol für Hostvariablen

ABAP-Datenobjekte, die in -Anweisungen verwendet werden (in der Regel Variablen), werden jetzt wie im statisch eingebetteten Native SQL als Hostvariablen aufgefasst. Hostvariablen können und sollen ab Release 7.40, SP05 mit dem Fluchtsymbol @ gekennzeichnet werden. Die Angabe von Hostvariablen ohne Fluchtsymbol wird dadurch obsolet. Wenn das Fluchtsymbol vor einem Bezeichner einer -Anweisung verwendet wird, wird die Syntaxprüfung in einem strikten Modus ausgeführt, welche die Anweisung strenger behandelt als die normale Syntaxprüfung.

Das Fluchtsymbol ist nur in Programmen der ABAP-Sprachversion möglich, in denen die Programmeigenschaft Festpunktarithmetik eingeschaltet ist. Die Verwendung des Fluchtsymbols bedingt eine strengere Syntaxprüfung der gesamten Anweisung, bei der Fehler, die ansonsten nur als Syntaxwarnung erscheinen, als Syntaxfehler gemeldet werden.



SQL-Ausdrücke

Ab Release 7.40, SP05 können SQL-Ausdrücke in einer kommaseparierten SELECT-Liste angegeben werden. Das Ergebnis eines solchen Ausdrucks, dessen Operanden die Namen von Spalten oder Hostvariablen sein können, wird vom Datenbanksystem bestimmt und in der entsprechende Spalte der Ergebnismenge an den AS ABAP übergeben.

Die Verwendung von SQL-Ausdrücken ist nur in Programmen der ABAP-Sprachversion möglich, in denen die Programmeigenschaft Festpunktarithmetik eingeschaltet ist. Die Verwendung von SQL-Ausdrücken bedingt, dass die Syntaxprüfung in einem strikten Modus ausgeführt wird, welche die Anweisung strenger behandelt als die normale Syntaxprüfung.



Umschalten der impliziten Mandantenbehandlung

Der neue Zusatz USING CLIENT clnt, der in allen Anweisungen von alternativ zu CLIENT SPECIFIED angegeben werden kann, stellt die implizite Mandantenbehandlung auf den in clnt angegebenen Mandanten um.

Wenn der Zusatz USING CLIENT verwendet wird, wird die Syntaxprüfung in einem strikten Modus ausgeführt, welche die Anweisung strenger behandelt als die normale Syntaxprüfung.



Regeländerungen für Joins

Folgende bisherigen Einschränkungen für Joins wurden aufgehoben:

  • Ab Release 7.40, SP05 müssen nicht mehr alle Vergleiche der ON-Bedingung eine Spalte einer als rechte Seite angegebenen Datenbanktabelle bzw. View als Operand enthalten.
  • Ab Release 7.40, SP05 ist die rechte Seite eines Join-Ausdrucks nicht mehr auf einzelne Tabellen bzw. Views beschränkt. Die rechte Seite kann selbst ein (geklammerter) Join-Ausdruck sein, dessen Ergebnismenge dann ausgewertet wird.
  • Ab Release 7.40, SP05 kann neben LEFT OUTER JOIN auch RIGHT OUTER JOIN verwendet werden.
  • Ab Release 7.40, SP05 können beim LEFT OUTER JOIN Felder der rechten und beim RIGHT OUTER JOIN Felder der linken Seite in der WHERE-Bedingung der aktuellen SELECT-Anweisung angegeben werden.

In einer SELECT-Anweisung, die obige Regeländerungen ausnutzt, wird die Syntaxprüfung in einem strikten Modus ausgeführt, welche die Anweisung strenger behandelt als die normale Syntaxprüfung.



Auswertung von INTO CORRESPONDING

Wenn alle benötigten Komponenten statisch erkennbar sind, wird die Zuordnung der Felder beim Zusatz CORRESPONDING hinter INTO jetzt bereits bei der Programmgenerierung und nicht erst zur Laufzeit bestimmt.

Der Zusatz INTO CORRESPONDING beeinflusst jetzt auch die SELECT-Liste, die tatsächlich an die Datenbank übergeben wird, und damit die Ergebnismenge der SELECT-Anweisung. Wenn es mindestens eine Namensübereinstimmung gibt, werden alle Spalten, für die es keine Namensübereinstimmung gibt, implizit aus der SELECT-Liste entfernt. Wenn es keine Namensübereinstimmung gibt, werden keine Spalten aus der Ergebnismenge entfernt. Bei der Angabe von * für die SELECT-Liste kann dies zu impliziten Umsetzung in eine Liste von Spalten führen.



Zugriff auf CDS-Entitäten

Mit SELECT kann auf CDS-Entitäten zugegriffen werden. Mögliche CDS-Entitäten sind derzeit CDS-Views, die mit der DDL der ABAP CDS über DEFINE VIEW definiert werden.

Bei mandantenabhängigen CDS-Views wird eine implizite Mandantenbehandlung durchgeführt. Wenn diese mit dem Zusatz CLIENT SPECIFIED abgeschaltet wird, ist die Mandantenspalte Teil der Ergebnismenge, obwohl sie kein Element der CDS-View ist. Mit dem neuen Zusatz CLIENT SPECIFIED der Anweisung TYPES kann hierfür ein geeigneter Zielbereich deklariert werden. Neue Zusätze zu CLIENT SPECIFIED hinter FROM erlauben es, die Spalte in der SELECT-Anweisung anzusprechen.

Wenn für den Zugriff wie empfohlen der Name der CDS-Entität und nicht der Name der CDS-verwaltete DDIC-Datenbank-View verwendet wird, wird die Syntaxprüfung in einem strikten Modus ausgeführt, welche die Anweisung strenger behandelt als die normale Syntaxprüfung.



Strikter Modus der Syntaxprüfung

Wenn eine der obigen Neuerungen in einer -Anweisung verwendet wird, wird die Syntaxprüfung in einem strikten Modus ausgeführt, welche die Anweisung strenger behandelt als die normale Syntaxprüfung.



Strengere Überprüfung von Syntaxregeln

Zu Release 7.40, SP02 wurde ein neuer SQL-Parser für eingeführt. Dieser Parser überprüft einige Regeln strenger als der alte Parser. Insbesondere wird jetzt auch der gleiche Parser für statisch angegebenes und für den Inhalt dynamischer Tokens verwendet. Dieser Parser wird zu Release 7.40, SP02 vorerst nur für die Anweisung SELECT eingesetzt. Ab Release 7.40, SP05 wird der neue Parser für alle -Anweisungen eingesetzt. Als Konsequenz daraus führen jetzt folgende Syntaxkonstrukte, die schon immer fehlerhaft waren, zu Syntax- oder Laufzeitfehlern:

  • Korrekturen für die WHERE-Bedingung
Alle Korrekturen zu Release 7.40, SP02, welche die WHERE-Bedingung betreffen, gelten ab Release 7.40, SP05 nun auch für die Anweisungen DELETE, OPEN CURSOR und UPDATE.

Beispiel

Ab Release 7.40, SP05 Syntaxfehler für:

DELETE FROM spfli WHERE NOT NOT carrid = 'LH'.
  • Korrekturen für dynamische Tokens
Alle Korrekturen zu Release 7.40, SP02, welche dynamische Tokens betreffen, gelten ab Release 7.40, SP05 für alle -Anweisungen, die dynamische Tokens unterstützen.

Beispiel

Ab Release 7.40, SP05 Ausnahme für:

DELETE FROM (`SPFLI .`) WHERE (`. CARRID = 'LH'`).
  • Korrektur für OPEN CURSOR
Der Zusatz WITH HOLD der Anweisung OPEN CURSOR darf nur bei Zugriffen auf die Standarddatenbank verwendet werden. Wenn gleichzeitig der Zusatz CONNECTION angegeben ist, kam es vor Release 7.40, SP05 nicht zu einem Syntax-, aber einem Laufzeitfehler, wenn die Datenbanktabelle dynamisch angegeben war. Diese Lücke wurde zu Release 7.40, SP05 geschlossen.

Beispiel

Ab Release 7.40, SP05 Syntaxfehler für:

OPEN CURSOR WITH HOLD cursor
     FOR  SELECT *
                FROM ('SPFLI') CONNECTION con.




Angabe dynamischer Tokens

Ab Release 7.40, SP05 können als dynamische Tokens angegebene interne Tabellen auch in ändernden-Anweisungen Sekundärschlüssel haben.






PERFORM Short Reference   TXBHW - Original Tax Base Amount in Local Currency  
Diese Dokumentation steht unter dem Copyright der SAP AG.

Length: 15373 Date: 20240523 Time: 095207     sap01-206 ( 207 ms )