ABAP - Schlüsselwortdokumentation →  ABAP - Referenz →  Externe Daten verarbeiten →  ABAP-Datenbankzugriffe →  Open SQL →  Open SQL - Lesende Zugriffe →  SELECT → 

SELECT - additional_options

Kurzreferenz

Syntax

... [UP TO n ROWS]
    [BYPASSING BUFFER]
    [CONNECTION con|(con_syntax)] ...

Zusätze:

1.... UP TO n ROWS

2.... BYPASSING BUFFER

3.... CONNECTION con|(con_syntax)

Wirkung

Diese optionalen Zusätze der Anweisung SELECT bestimmen die maximale Anzahl der zu lesenden Zeilen, legen fest, ob die SAP-Pufferung umgangen wird, und definieren die Datenbankverbindung.

Wenn die INTO-Klausel als letzte Klausel der SELECT-Anweisung aufgeführt ist, müssen die Zusätze hinter der INTO-Klausel stehen. Ansonsten können sie auch hinter der SELECT-Liste oder hinter der FROM-Klausel stehen.

Zusatz 1

... UP TO n ROWS

Wirkung

Dieser Zusatz begrenzt die Anzahl der Zeilen in der Ergebnismenge einer SELECT-Anweisung. Für n wird eine Hostvariable, ein Hostausdruck oder ein Literal vom Typ i erwartet, die alle nicht negativen Zahlen des Wertebereichs außer dessen Maximalwert +2.147.483.647 darstellen dürfen. Einer Hostvariable soll das Fluchtsymbol @ vorangestellt werden. Der Inhalt von n muss gemäß der Regeln für eine verlustfreie Zuweisung zum Datentyp i passen.

Enthält n eine positive Zahl, gibt diese die maximale Zeilenzahl in der Ergebnismenge an. Enthält n den Wert 0, werden maximal 2.147.483.647 Zeilen in die Ergebnismenge gestellt. Enthält n eine negative Zahl oder +2.147.483.647, kommt es zu einem Syntaxfehler oder einer unbehandelbaren Ausnahme.

Der Zusatz UP TO kann nicht zusammen mit dem Zusatz SINGLE verwendet werden.

Hinweise

Es wird empfohlen, den Zusatz UP TO 1 ROWS zu verwenden, um maximal eine Zeile einer Menge von selektierten zu lesen, während der Zusatz SINGLE in aller Regel für das Lesen einer vollständig spezifizierten Zeile eingesetzt werden soll.

Beispiel

Auslesen der 3 Geschäftskunden mit den höchsten Rabattsätzen:

DATA: wa_scustom TYPE scustom.

SELECT *
       FROM scustom
       WHERE custtype = 'B'
       ORDER BY discount DESCENDING
       INTO @wa_scustom
       UP TO 3 ROWS.
ENDSELECT.

Zusatz 2

... BYPASSING BUFFER

Wirkung

Dieser Zusatz bewirkt, dass die SELECT-Anweisung die SAP-Pufferung umgeht und direkt aus der Datenbank, nicht aber aus dem Puffer auf dem Applikationsserver liest.

Zusatz 3

... CONNECTION con|(con_syntax)

Wirkung

Der Open SQL-Befehl wird nicht auf der Standard-Datenbankverbindung, sondern auf der angegebenen sekundären Datenbankverbindung ausgeführt. Die Datenbankverbindung kann wie folgt angegeben werden

Direkte statische Angabe als con.
Angabe als Inhalt eines eingeklammerten Datenobjekts con_syntax vom Typ c oder string. Es können folgende Angaben für con_syntax unterschieden werden:

Die Datenbankverbindung muss mit einem Namen angegeben werden, der in der Tabelle DBCON in der Spalte CON_NAME enthalten ist oder mit dem Präfix R/3* beginnt und damit für eine Service-Verbindung zur Standard-Datenbank steht. Die Angabe der Datenbankverbindung wird sowohl bei statischer als auch bei dynamischer Angabe erst zur Laufzeit ausgewertet und eine unbekannte Datenbankverbindung führt zum Laufzeitfehler DBSQL_UNKNOWN_CONNECTION.

Die in der aktuellen Open-SQL-Anweisung angegebenen Datenbanktabellen oder Views müssen unabhängig von der angegebenen Datenbankverbindung aktiv im ABAP Dictionary des aktuellen AS ABAP vorhanden sein. Als Datenbanktabellen können nur transparente Tabellen angegeben werden. Pool- und Cluster-Tabellen können nicht zusammen mit dem Zusatz CONNECTION angegeben werden. In der sekundären Datenbank muss es für jede in der aktuellen Open-SQL-Anweisung angegeben Datenbanktabelle oder View ein gleichnamiges entsprechend verwendbares Objekt mit passender Struktur geben, sonst kommt es zu einer Ausnahme.

Hinweise

Beispiel

Auslesen von Daten über eine Service-Verbindung zur Standard-Datenbank.

SELECT *
       FROM scarr
       INTO TABLE @DATA(itab)
       CONNECTION r/3*my_conn.

cl_demo_output=>display( itab ).