Secuencia de las cláusulas

Como ha notado en los ejemplos anteriores, la cláusula INTO fue colocada después de las otras cláusulas. Esto no siempre fue así. Desde la versión 7.40, SP08 en adelante, la cláusula INTO debe ser utilizada después de las otras cláusulas de una instrucción SELECT. Las adiciones UP TO n ROWS, BYPASSING BUFFER y CONNECTION no se tratan como cláusulas y se deben colocar después de la cláusula INTO.
La razón de este cambio es que la cláusula INTO no es parte del estándar SQL, sino que define la interfaz de datos entre SQL y ABAP. Para habilitar futuras mejoras en la parte SQL de Open SQL (por ejemplo, UNION) la cláusula INTO debe eliminarse de la parte SQL.
El siguiente ejemplo realiza una lectura con INNER JOIN implementando el orden correcto de las cláusulas:
 
SELECT FROM       bkpf AS header
INNER JOIN bseg AS item ON header~bukrs EQ item~bukrs
  AND header~belnr EQ item~belnr
AND header~gjahr EQ item~gjahr
  FIELDS header~bukrs,
header~gjahr,
header~belnr,
item~*
    WHERE header~bukrs EQ @gv_soc
AND header~gjahr EQ @gv_eje
ORDER BY header~belnr
INTO TABLE @DATA(gt_acc_docs)
UP TO 10 ROWS.
 
IF sy-subrc EQ 0.
  READ TABLE gt_acc_docs INTO DATA(gs_acc_docs) INDEX 1.
IF sysubrc EQ 0.
cl_demo_output=>display( gs_acc_docs-item ).
  ENDIF.
ENDIF.
 

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *

Suscríbete al blog
Recibe las últimas actualizaciones y contenidos exclusivos directamente en tú correo electrónico.
Inscribime
close-link