Select Endselect

La sentencia ENDSELECT se utiliza para cerrar un bucle iniciado con SELECT. Esta lección trata de explicarle cómo implementar esta instrucción.

  • Sintaxis

SELECT result
FROM source
INTO|APPENDING target
[[FOR ALL ENTRIES IN itab] WHERE sql_cond] [GROUP BY group] [HAVING group_cond] [ORDER BY sort_key].

ENDSELECT.
 

  • Efecto

En cada iteración de bucle, la instrucción SELECT asigna una fila o un paquete de filas a los objetos de datos especificados en el destino. Si se ha asignado la última fila o el conjunto de resultados está vacío, SELECT salta a ENDSELECT. Un cursor de base de datos se abre implícitamente para procesar un bucle SELECT, y se cierra de nuevo cuando el bucle ha terminado. Puede salir del bucle utilizando las mismas instrucciones que se utilizan para salir de los bucles LOOP. Si el conjunto de resultados totales se pasa al objeto de datos en un solo paso, no se abre un bucle y no se puede especificar la sentencia ENDSELECT.

  • Aplicación práctica

En el programa ejecutable realizamos una lectura de la tabla de base de datos ZSPFLISA00001 obteniendo todos los registros en una tabla interna. La lectura la realizamos con la sentencia SELECT…ENDSELECT. En la lógica del bucle hacemos una conversión de millas a kilómetros. Al finalizar mostramos en la salida el contenido de la tabla interna utilizando el método estático DISPLAY de la clase estándar CL_DEMO_OUTPUT.

  1. Implementamos el código fuente.
  2. Ejecutamos el programa
  • Notas

Si se utiliza la adición PACKAGE SIZE la sentencia SELECT abre un bucle, que debe cerrarse con ENDSELECT.

Deja una respuesta

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