✒️ABAP El lenguaje SQL y la sentencia SELECT
ABAP El lenguaje SQL y la sentencia SELECT
Instrucciones SQL: La sentencia SELECT.
1.- La Sentencia SELECT:
Existen en ABAP un conjunto de sentencias que se utilizan para acceder a las bases de datos.
Evitar el uso del * cuando solo se requiera obtener algunos campos de la tabla origen.
*Es recomendable hacer CLEAR y REFRESH de la tabla interna antes de realizar la seleccion.
*Si quisieramos obtener de todos los campos de la tabla ZTABLA_USUARIOS el campo DNI deberiamos crear una tabla auxiliar solo con el campo DNI para alojar el resultado de la consulta.
*Siempre despues de SELECT se debe preguntar por el SY-SUBRC para saber como proseguir.
*La sentencia INTO CORRESPONDING FIELDS OF TABLE realiza la comparacion de los campos teniendo en cuenta los tipos de los campos de cada tabla y la posicion de cada uno de elllos, es decir por ejemplo si en la posicion 1 se encuentra un campo tipo char de 4 posiciones , entonces en la misma posicion de la otra tabla, tambien debe existir un campo char de 4 posicones para que la comparacion sea correcta.
*La clausula IN se utiliza para los select-options en las condiciones de un select.
*Cuando escribimos la sentencia SELECT es totalmente igual para el compilador ABAP, si colocamos primero la seleccion FROM y luego la seleccion INTO o al revés.
*Si quisieramos saber la cantidad de usuarios con estado = "activo", debemos usar la clausula COUNT
*Si quisieramos obtener de una tabla todos los registros que existan en una tabla interna cargada con datos, entonces debemos utilizar la sentencia FOR ALL ENTRIES IN que nos permite especificar condiciones en tiempo de ejecucion.
Con FOR ALL ENTRIES lo que hacemos es selccionar los registros de la tabla ZTABLA_USUARIOS que se encuentren en la tabla interna ti_provedores siendo que el campo DNI sea igual en ambas tablas y almacenamos las coincidencias en la tabla interna ti_usuarios esto mismo se podria realizar recorriendo la tabla interna ti_provedores con un LOOP y por cada registro de esta tabla interna realizariamos un SELECT a la tabla ZTABLA_USUARIOS, entonces debemos tener en cuenta la performance de los programas que realizamos, ya que si la tabla interna ti_provedores almacena solo 3 registros entonces al ejecutar nuestro programa estariamos accediento a la base de datos solo 3 veces, pero si la tabla interna ti_provedores almacena 100 mil registros, enotnces al ejecutar nuestro programa, estariamos accediendo a la base de datos 100 mil veces lo cual produciria un tiempo de espera enorme, para evitar esta situciones nos aseguramos acceder a la base de datos utilizando FOR ALL ENTRIES.
*Si queremos obtener todos los registros que cumplan con un patron de texto en alguno de sus campos, debemos utilizar la sentencia LIKE.
 
 
 
Sobre el autor
Publicación académica de Miguel Ochoa, en su ámbito de estudios para la Carrera Consultor ABAP.
Miguel Ochoa
Profesión: Estudiante de Ing. Industrial - Chile - Legajo: TB61K
✒️Autor de: 47 Publicaciones Académicas
🎓Egresado del módulo:
Presentación:
Soy estudiante universitario con ganas de desarrollarme en el mundo de sap abap no tengo experiencia laboral, mis expectativas es poder comprender la filosofía de sap que me permita desarrollar
Certificación Académica de Miguel Ochoa