SAP ABAP: descripción general de SQL nativo
El término 'SQL nativo' se refiere a todas las declaraciones que se pueden transferir estáticamente a la interfaz SQL nativo de la interfaz de la base de datos. Las declaraciones de SQL nativo no se incluyen en el ámbito del lenguaje de ABAP y no siguen la sintaxis de ABAP. ABAP simplemente contiene declaraciones para aislar secciones del programa en las que se pueden enumerar las declaraciones de SQL nativo.
En SQL nativo, se pueden utilizar principalmente sentencias SQL específicas de la base de datos. Estos se transfieren sin cambios desde la interfaz SQL nativa a un sistema de base de datos y se ejecutan. Se puede utilizar todo el alcance del lenguaje SQL de la base de datos relevante y las tablas de la base de datos direccionadas no tienen que declararse en el Diccionario ABAP. También hay un pequeño conjunto de declaraciones SQL nativas específicas de SAP que se manejan de una manera específica mediante la interfaz SQL nativa.
Para usar una instrucción SQL nativa, debe precederla con la instrucción EXEC SQL y terminar con la instrucción ENDEXEC.
A continuación se muestra la sintaxis:
EXEC SQL PERFORMING <form>.
<Native SQL statement>
ENDEXEC.
Estas declaraciones definen un área en un programa ABAP donde se pueden enumerar una o más declaraciones de SQL nativo. Las declaraciones ingresadas se pasan a la interfaz de SQL nativo y luego se procesan de la siguiente manera:
Todas las sentencias SQL que son válidas para la interfaz del programa del sistema de base de datos direccionado se pueden enumerar entre EXEC y ENDEXEC, en particular las sentencias DDL (lenguaje de definición de datos).
Estas sentencias SQL se pasan de la interfaz SQL nativa al sistema de base de datos prácticamente sin cambios. Las reglas de sintaxis las especifica el sistema de la base de datos, especialmente las reglas de distinción entre mayúsculas y minúsculas para los objetos de la base de datos.
Si la sintaxis permite un separador entre declaraciones individuales, puede incluir muchas declaraciones de SQL nativo entre EXEC y ENDEXEC.
Los elementos del lenguaje SQL nativo específicos de SAP se pueden especificar entre EXEC y ENDEXEC. Estas declaraciones no se pasan directamente desde la interfaz de SQL nativo a la base de datos, pero se transforman de manera apropiada.
Ejemplo
SPFLI es una tabla SAP estándar que se utiliza para almacenar información sobre el horario de vuelo. Está disponible en los sistemas SAP R / 3 según la versión y el nivel de lanzamiento. Puede ver esta información cuando ingresa el nombre de la tabla SPFLI en la transacción de SAP relevante, como SE11 o SE80. También puede ver los datos contenidos en esta tabla de base de datos utilizando estas dos transacciones.
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.
El código anterior produce la siguiente salida:
0400 FRANKFURT NEW YORK
2402 FRANKFURT BERLIN
0402 FRANKFURT NEW YORK