Ansicht
Dokumentation

ABENOPEN_SQL_PARAMETERS - OPEN SQL PARAMETERS

ABENOPEN_SQL_PARAMETERS - OPEN SQL PARAMETERS

Vendor Master (General Section)   ABAP Short Reference  
Diese Dokumentation steht unter dem Copyright der SAP AG.
SAP E-Book

- SQL-Parameterübergabe sql_para

Syntax

... ( pname1 = act1, pname2 = act2, ... ) ...

Wirkung

Angabe von Aktualparametern act1, act2, ... für die Eingabeparameter pname1, pname2, ... einer CDS-Entität in einer geklammerten kommaseparierten Liste. Parameter können an folgenden Stellen von -Anweisungen an nicht-abstrakte CDS-Entitäten übergeben werden:

Wenn eine CDS-Entität als Datenquelle data_source einer Query bzw. target einer in einem Pfadausdruck angegebenen CDS-Assoziation Eingabeparameter hat, muss jedem Eingabeparameter wie folgt ein passender Aktualparameter übergeben werden:

  • Für einen Eingabeparameter der keine Annotation @Environment.systemField hat, muss ein expliziter Aktualparameter angegeben werden.
  • Für einen Eingabeparameter der eine Annotation @Environment.systemField mit einem der vordefinierten Werte #SYSTEM_... hat, muss kein expliziter Aktualparameter angegeben werden. Falls kein Aktualparameter angegeben ist, übergibt implizit den nominellen Wert des über die Annotation zugeordneten Systemfelds. Dabei werden aber nur Datum und Zeit aus den Systemfeldern sy-datum und sy-uzeit entnommen, während Sprache und Benutzername aus sicheren Quellen stammen.
  • Für einen Eingabeparameter der eine Annotation @Environment.systemField mit dem vordefinierten Wert #CLIENT hat, darf kein expliziter Aktualparameter angegeben werden. Statt dessen übergibt implizit die Kennung des aktuellen bzw. eines mit USING CLIENT angegebenen Mandanten.

Als Aktualparameter können Literale, Hostvariablen oder Hostausdrücke angegeben werden. Dem Namen einer Hostvariablen muss das Fluchtsymbol @ vorangestellt werden. Der Datentyp des Parameters muss in den eingebauten Datentyp des ABAP Dictionary, der durch die Typisierung des Parameters festgelegt ist, konvertierbar sein. Der Inhalt des Aktualparameters muss gemäß der Regeln für eine verlustfreie Zuweisung zum Datentyp des Eingabeparameters passen.

In folgenden Fällen können die Klammern ( ) hinter dem Namen einer CDS-Entität leer sein oder weggelassen werden:

Bei CDS-Views ohne Eingabeparameter sowie bei allen klassischen Dictionary-Objekten können keine Klammern angegeben werden.

Hinweise

  • Es gibt derzeit keine optionalen Eingabeparameter von CDS-Entitäten und keine echten Ersatzwerte für Eingabeparameter. Die Annotation @Environment.systemField umgeht diese Lücke zumindest für einige Umgebungswerte, indem der Aufrufer die nicht-optionalen Parameter implizit versorgt.
  • Wenn Parameter an eine Entität mit Parametern übergeben werden, wird die Syntaxprüfung im strikten Modus ab 7.40 SP08 ausgeführt. Wenn ein Hostausdruck als Aktualparameter angegeben ist, wird die Syntaxprüfung im strikten Modus ab Release ausgeführt. Bei gleichzeitiger Verwendung eines Pfadausdrucks bzw. bei einer Parameterübergabe in einem Pfadausdruck wird die Syntaxprüfung im strikten Modus ab Release ausgeführt.

Beispiel

Übergabe einer Zeitzone an den Eingabeparameter tz der CDS-View demo_cds_assoc_sairport_tz.

DATA timezone TYPE s_tzone VALUE 'UTC+1'.
cl_demo_input=>request( CHANGING field = timezone ).

SELECT id
       FROM demo_cds_assoc_sairport_tz( tz = @timezone )
       INTO TABLE @DATA(result).

cl_demo_output=>display( result ).

SELECT, CDS-View mit Eingabeparametern






General Material Data   General Material Data  
Diese Dokumentation steht unter dem Copyright der SAP AG.

Length: 8349 Date: 20240523 Time: 103424     sap01-206 ( 95 ms )