![](/cvo_files/imgs_sap_abap/logos/logo_cvo_academy_it.png)
✒️ABAP Las tablas internas
ABAP Las tablas internas
![ABAP Las tablas internas ABAP Las tablas internas](https://www.cvosoft.com/cvo_files/imgs_sap_abap/og-images/302.jpg)
Lección: Tablas internas
1) Qué son la Tablas internas
Si queremos guardar una colección de registros de datos de la misma estructura en memoria, sin necesidad de acceder continuamente a las bases de datos y poder realizar diversas operaciones con este conjunto de información, entonces utilizaremos tablas internas.
Tabla interna: es un objeto de datos que permite guardar en memoria grandes cantidades de registros de datos con la misma estructura. La cantidad de registros máxima esta relacionada con los límites especificados en la instalación del sistema
El uso típico que se le da a una tabla interna es:
Para almacenar temporalmente los datos de las bases de datos para un procesamiento
Para estructurar y formatear datos que se mostrarán como salida del programa
Para formatear datos para ser utilizados por otros servicios
2) Cómo se declara una Tabla interna
La sintaxis para su declaración es la siguiente: DATA:BEGIN OF (tabla) OCCURS (n) ( def.campo) END OF (tabla)
De esta manera definiremos una tabla interna con n líneas en memoria más una línea de cabecera o área de trabajo. La cantidad de líneas que se especifican en OCCURS no limitan el tamaño de la tabla sino la cantidad de registros que se guardarán en memoria simultáneamente.
Por lo general, en el parámetro OCCURS se especifica la cantidad 0 lo que permite trabajar con tablas de gran cantidad de registros.
3) Llenado de una tabla interna
Para llenar con datos una tabla interna utilizamos:
APPEND TO: se aññade un registro a la tabla interna en la última posición con los valores que tengamos en el área de trabajo.
LLenamos la tabla interna con el contenido de una base de datos. Esto lo haremos con la sentencia SELECT .
4) Ordenamiento de una tabla interna
Para ordenar una tabla interna utilizamos la sentencia SORT.
Para ordenar de menor a mayor hay que utilizar la cláusula ASCENDING
5) Procesamiento de una tabla interna
Para recorrer una tabla interna y procesar registro a registro utilizaremos la sentencia LOOP-ENDLOOP
Si no existe ningún registro que cumpla la condición especificada en la cláusula WHERE, el SY-SUBRC será distinto de cero
6) Lectura de una tabla interna
Para leer un registro concreto de una tabla interna sin necesidad de recorrerla utilizamos la sentencia READ TABLE
Si se encuentra el registro buscado, el SY-SUBRC será cero, caso contrario, será distinto de cero. Si se desea leer los datos que se encuentran en una posición particular de la tabla se utilizará la cláusula INDEX
El agregado de la Cláusula BINARY SEARCH en la sentencia READ TABLE hace que la búsqueda sea ampliamente más eficiente
7) Modificando una tabla interna
Para modificar el contenido de un registro de una tabla interna utilizamos la sentencia MODIFY.
Si intentamos modificar un registro de una tabla interna y el mismo no existe entonces el SY-SUBRC será distinto de cero
Para insertar un registro en una posición determinada de una tabla interna utilizamos la sentencia INSERT
Para borrar el contenido de un registro de una tabla interna utilizamos la sentencia DELETE
Para borrar todo el contenido de una tabla interna utilizamos la sentencia REFRESH.
Para saber cuantos registros tiene una tabla interna utilizamos la sentencia DESCRIBE TABLE
 
 
 
Sobre el autor
Publicación académica de Aida Cortina Fernandez, en su ámbito de estudios para la Carrera Consultor ABAP.
Aida Cortina Fernandez
Profesión: Consultor Junior - España - Legajo: MK87X
✒️Autor de: 74 Publicaciones Académicas
🎓Cursando Actualmente: Consultor ABAP Nivel Avanzado
🎓Egresado del módulo:
Certificación Académica de Aida Cortina