SAP ABAP - Panoramica di SQL nativo

Il termine "Native SQL" si riferisce a tutte le istruzioni che possono essere trasferite staticamente all'interfaccia Native SQL dell'interfaccia del database. Le istruzioni SQL native non rientrano nell'ambito del linguaggio di ABAP e non seguono la sintassi ABAP. ABAP contiene semplicemente istruzioni per isolare le sezioni del programma in cui è possibile elencare le istruzioni SQL native.

In SQL nativo, è possibile utilizzare principalmente istruzioni SQL specifiche del database. Questi vengono trasferiti invariati dall'interfaccia SQL nativa a un sistema di database ed eseguiti. È possibile utilizzare l'intero ambito del linguaggio SQL del database pertinente e le tabelle del database indirizzate non devono essere dichiarate nel dizionario ABAP. Esiste anche una piccola serie di istruzioni SQL native specifiche per SAP che vengono gestite in modo specifico dall'interfaccia SQL nativa.

Per utilizzare un'istruzione SQL nativa, è necessario anteporla all'istruzione EXEC SQL e terminare con l'istruzione ENDEXEC.

La seguente è la sintassi:

EXEC SQL PERFORMING <form>.  
   <Native SQL statement> 
ENDEXEC.

Queste istruzioni definiscono un'area in un programma ABAP in cui è possibile elencare una o più istruzioni SQL native. Le istruzioni immesse vengono passate all'interfaccia SQL nativa e quindi elaborate come segue:

  • Tutte le istruzioni SQL valide per l'interfaccia del programma del sistema di database indirizzato possono essere elencate tra EXEC e ENDEXEC, in particolare le istruzioni DDL (linguaggio di definizione dei dati).

  • Queste istruzioni SQL vengono trasmesse dall'interfaccia SQL nativa al sistema di database in gran parte invariate. Le regole di sintassi sono specificate dal sistema di database, in particolare le regole di distinzione tra maiuscole e minuscole per gli oggetti di database.

  • Se la sintassi consente un separatore tra singole istruzioni, è possibile includere molte istruzioni SQL native tra EXEC e ENDEXEC.

  • È possibile specificare elementi del linguaggio SQL nativo specifico per SAP tra EXEC e ENDEXEC. Queste istruzioni non vengono passate direttamente dall'interfaccia SQL nativa al database, ma vengono trasformate in modo appropriato.

Esempio

SPFLI è una tabella SAP standard utilizzata per memorizzare le informazioni sulla pianificazione dei voli. Questo è disponibile nei sistemi SAP R / 3 a seconda della versione e del livello di rilascio. È possibile visualizzare queste informazioni quando si immette il nome tabella SPFLI nella transazione SAP pertinente come SE11 o SE80. È inoltre possibile visualizzare i dati contenuti in questa tabella di database utilizzando queste due transazioni.

REPORT ZDEMONATIVE_SQL. 
DATA: BEGIN OF wa,  
      connid  TYPE SPFLI-connid,
      cityfrom TYPE SPFLI-cityfrom,
      cityto  TYPE SPFLI-cityto,  
      END OF wa. 
	
DATA c1 TYPE SPFLI-carrid VALUE 'LH'. 
EXEC SQL PERFORMING loop_output.
   SELECT connid, cityfrom, cityto  
   INTO :wa  
   FROM SPFLI  
   WHERE carrid = :c1 
ENDEXEC. 

FORM loop_output.  
   WRITE: / wa-connid, wa-cityfrom, wa-cityto. 
ENDFORM.

Il codice precedente produce il seguente output:

0400  FRANKFURT  NEW YORK 
2402  FRANKFURT  BERLIN 
0402  FRANKFURT  NEW YORK