📘ABAP - Native SQL
Definición de Native SQL
Utilizando OPEN SQL nos independizamos de la base de datos instalada en el sistema SAP, es decir utilizamos el mismo lenguaje de acceso a datos sin tener en cuenta si la base de datos es HANA, ORACLE, INFORMIX o otra.
El SQL Nativo es el SQL real de la base de datos que estamos utilizando.
EL Native SQL nos permite utilizar declaraciones SQL específicas de la base de datos en un programa ABAP.
Por ejemplo, es muy común en ABAP, cuando realizamos SELECTs a tablas bases de datos que tienen muchos registros, forzar la utilización de determinados índices de la tabla mediante la sentencia HINTS, la cual es propia de las bases de datos ORACLE.
Veamos a continuación un ejemplo de su utilización:
REPORT ztest_hints.
DATA: BEGIN OF equipos_libres OCCURS 0,
sernr TYPE equi-sernr,
objnr TYPE equi-objnr,
matnr TYPE equi-matnr,
sttxt(40) TYPE c,
ustxt(40) TYPE c.
DATA: END OF equipos_libres.
DATA: t1 TYPE i,
t2 TYPE i,
t TYPE p DECIMALS 2.
*&---------------------------------------------------------------------*
START-OF-SELECTION.
*&---------------------------------------------------------------------*
GET RUN TIME FIELD t1.
* Armo lista de aparatos disponibles
SELECT sernr objnr matnr FROM v_equi
CLIENT SPECIFIED
APPENDING TABLE equipos_libres
WHERE mandt EQ sy-mandt
AND ( matnr EQ 'LLAVE DE AGUA'
OR matnr EQ 'LLAVE DE CLOACAS' )
AND iwerk EQ space
AND ingrp EQ space
AND tplnr EQ space
AND begru EQ space
AND datbi EQ '99991231'
%_HINTS ORACLE 'PARALLEL(V_EQUI ,10)'.
GET RUN TIME FIELD t2.
t = t2 - t1.
WRITE: / 'Tiempo de ejecución: ', t, 'microsegundos'.