🚀PROMO #PLANCARRERA2024 - 🔥Bonificaciones, Precios Congelados y Cuotas

 X 

✒️ABAP El lenguaje SQL y la sentencia SELECT

ABAP El lenguaje SQL y la sentencia SELECT

ABAP El lenguaje SQL y la sentencia SELECT

SENTENCIA SELECT...ENDSELE

Esta sentencia realiza una lectura lineal de los datos de las tablas de la base de datos y los asigna directamente a los campos de nuestra tabla interna. Pero atención, para que queden almacenados sobre la tabla interna para cada registro seleccionado debemos utilizar la sentencia APPEND. Así, haremos añadiremos los registros a nuestra tabla interna.
SELECT * FROM sflight WHERE carrid IN s_carrid. i_vuelos-carrid = sflight-carrid. i_vuelos-connid = sflight-connid. i_vuelos-fldate = sflight-fldate. i_vuelos-planetype = sflight-planetype. APPEND i_vuelos. CLEAR i_vuelos. ENDSELECT.
  • El símbolo (*) le indica a SAP que debe guardar en memoria absolutamente todos los valores de todos los campos de cada registro de la tabla SAP.
  • La cláusula WHERE nos permite indicar el filtro de selección. En este caso utilizamos como filtro el rango de códigos de aerolíneas. De la tabla sflight sólo recuperaremos aquellos registros que cumplan con la condición indicada en el WHERE.
  • Seguidamente asignamos a cada campo de la tabla interna el valor del campo de la tabla SAP, dejándolo a nivel de la cabecera de la tabla interna.
  • Finalmente, guardamos el registro en nuesta tabla interna mediante la sentencia APPEND.
    Con la sentencia CLEAR limpiamos la cabecera y la dejamos lista para el siguiente registro.

La sentencia SELECT...ENDSELECT irá pasando uno a uno por cada uno de los registros que cumplan la condición de la cláusula WHERE y los irá almacenando gracias a la sentencia APPEND dentro de nuestra tabla interna.
El mayor inconveniente de trabajar con la forma SELECT...ENDSELECT es que la lectura se hace linealmente, es decir, SAP debe pasar por cada uno de los registros individualmente hasta llegar al final. Esto hace que la búsqueda de datos sea muy ineficiente en términos de rendimiento y alarga innecesariamente el tiempo de ejecución del programa.
Una forma de mejorar el rendimiento sería no utilizar la cláusula (*) sino indicar específicamente los campos que necesitamos llenar.
SELECT carrid connid fldate planetype FROM sflight INTO (i_vuelos-carrid, i_vuelos-connid, i_vuelos-fldate, i_vuelos-planetype) WHERE carrid IN s_carrid. APPEND i_vuelos. CLEAR i_vuelos. ENDSELECT.
Al no usar todos los campos mejoramos el rendimiento y con la cláusulo INTO asignamos directamente el valor al campo de la tabla interna.
Otra forma de sentencia select.
Existe otra forma de la sentencia SELECT mucho más eficiente nos permite almacenar los datos en la tabla interna sin necesidad de utilizar la sentencia APPEND. El mismo efecto que en el caso anterior lo obtendríamos usando...
SELECT * FROM sflight INTO CORRESPONDING FIELDS OF TABLE i_vuelos WHERE carrid IN s_carrid.
  • Seguimos utilizando el valor (*) para leer todos los campos.
  • La claúsula INTO CORRESPONDING FIELDS OF TABLE compara el nombre del campo de la tabla de SAP con cada nombre de la tabla interna. Si encuentra coincidencia le asigna su valor correspondiente. Por eso, es tan importante que el nombre de los campos de una tabla interna sean iguales al nombre de los campos de una tabla SAP. De lo contrario, esta forma no se puede utilizar.
    Se mantiene la cláusula WHERE.
  • Se elimina la sentencia APPEND ya que la lectura deja de ser secuencial sino en bloques. Es decir, SAP ya no tiene que recorrer uno a uno todos los registros, sino que toma el bloque de registros que coinciden con la condición determinada a través de la cláusula WHERE y lo asigna en bloque a la tabla interna.

Y aún, otra variación que podemos utilizar sería:
SELECT carrid connid fldate planetype FROM sflight INTO TABLE i_vuelos WHERE carrid IN s_carrid.
Esta forma es todavía más eficiente ya que:
  • Evita el uso de (*) y en su lugar sólo toma el valor de los campos que nos interesa (carrid, connid, fldate y planetype).
  • La cláusula INTO TABLE asigna estos cuatro campos a los cuatro primeros campos de la tabla interna. Así que, cuidado, el orden en que se hayan declarado estos campos en la tabla interna es importante. Aquí no hay asignación por nombre de campo, sino por posición, el valor del campo carrid de la tabla sflight se asignará al primer campo de la tabla interna, el valor del campo connid de la tabla sflight se asignará al segundo campo de la tabla interna, y así sucesivamente. Aquí ya no es tan importante el nombre de los campos de la tabla interna, pero sí la longitud y el tipo de esos campos. Si no lo tenemos cuenta nuestro programa acabar abruptamente con dump breve.
La sentencia select para recuperar registros individualmente.
Finalmente, otra forma que se utiliza mucho, es la sentencia SELECT SINGLE.
SELECT SINGLE * FROM sflight WHERE connid = p_connid.
Se utiliza si lo que nos interesa es únicamente un registro de nuestra tabla de base de datos. En en el ejemplo, me interesa un número de vuelo en concreto y utilizo la sentencia SELECT con la cláusula SINGLE. Es muy habitual que después de escribir esta sentencia se escriba una condición del tipo IF sy-subrc ... ENDIF.
SELECT SINGLE * FROM sflight WHERE connid = p_connid. IF sy-subrc = 0. i_vuelos-connid = sflight-connid. APPEND i_vuelos. CLEAR i_vuelos. ENDIF.
El campo sy-subrc es un campo de sistema y si el resultado es 0 significa que la sentencia que se ha ejecutado anteriormente lo ha hecho de forma satisfactoria. Si el valor, en cambio, fuese 4 o cualquier otro, entonces hemos de suponer que dentro de la tabla sflight no existe ningún registro que confirme la condición dada en la cláusula WHERE.
Por supuesto, podemos hacer esta sentencia un poco más eficiente de la siguiente forma:
SELECT SINGLE connid FROM sflight INTO i_vuelos-connid WHERE connid = p_connid. APPEND i_vuelos. CLEAR i_vuelos.

Clausula FOR ALL ENTRIES; Nos permite obtener todos los registros de una tabla de BBDD, cargandola en una tabla
interna.

NOTA: Con la Instrucción FOR ALL ENTRIES hay que tener sumo cuidado en la manera en que se va a usar, primero se debe asegurar que la tabla driver con la se va a comparar no se encuentre vacia, pues si es así, traería toda la data que esté en la base de datos, perjudicando el performance del programa, y segundo, si la tabla interna tiene muchos registros, el select a la Base de Datos sería mucha mas lento pues si utilizaría mucha memoria.


 

 

 


Sobre el autor

Publicación académica de Francisco Javier Gomez Jimenez, en su ámbito de estudios para la Carrera Consultor ABAP.

SAP Expert

Francisco Javier Gomez Jimenez

Profesión: Consultor Junior - España - Legajo: KW17D

✒️Autor de: 200 Publicaciones Académicas

🎓Cursando Actualmente: Consultor ABAP Nivel Avanzado

🎓Egresado de los módulos:

Certificación Académica de Francisco Gomez

✒️+Comunidad Académica CVOSOFT

Continúe aprendiendo sobre el tema "El lenguaje SQL y la sentencia SELECT" de la mano de nuestros alumnos.

SAP Master

SENTENCIA SELECT INTO TABLE se utiliza cuando el resultado de la consulta se guarda en una tabla interna simepre despues de un select se debe preguntar por el sy-subrc para saber como proseguir SENTENCIA SINGLE para obtener la primera ocurrencia de la tabla clausula in para select option FOR ALL ENTRIES IN es un formato especial de la sentencia where que se utiliza para especificar condiciones en tiempo de ejecucion no se pueden utilizar like between e in

Acceder a esta publicación

Creado y Compartido por: Andres Felipe Escobar Lopez

*** CVOSOFT - Nuestros Alumnos - Nuestro Mayor Orgullo como Academia ***

SAP Master

SQL, sus siglas significan lenguaje de consulta estructurado. es un lenguaje de consulta, usado como interfaz para comunicarse con bases de datos y realizar operaciones de acceso y manipulacion de la informacion almacenada. Algunos sistemas de gestion de bases de datos comunes que utilizan SQL son ORACLE, SAP HANA, MY SQL; Microsoft SQL SERVER, microsoft acces, ingres etc. LA SENTENCIA SELECT se utiliza para realizar informacion en SQL, es decir permite obtener registros de la base de datos de una o varias tablas combinadas. Ademas permite hacer filtrados de la informacion para obtener unicamente los registros que cumplen ciertas condiciones. Una sentencia select recupera cero o mas filas de una o mas tablas de base de datos o vistas de base...

Acceder a esta publicación

Creado y Compartido por: Pedro Salazar / Disponibilidad Laboral: FullTime + Carta Presentación

*** CVOSOFT - Nuestros Alumnos - Nuestro Mayor Orgullo como Academia ***

SAP Expert


La sentencia "SELECT" en el contexto de SAP ABAP (Advanced Business Application Programming), que se utiliza para recuperar datos de una base de datos. La sentencia "SELECT" se utiliza para consultar registros en tablas de la base de datos y recuperar la información que necesitas para tu programa. La sentencia "SELECT" puede incluir más detalles, como cláusulas "WHERE" para filtrar los registros, "GROUP BY" para agrupar resultados y otras opciones que permiten personalizar la consulta según tus necesidades. QL (Structured Query Language) es un lenguaje de programación utilizado para gestionar y manipular bases de datos relacionales. Con SQL, puedes realizar...

Acceder a esta publicación

Creado y Compartido por: Darling Geraldino

*** CVOSOFT - Nuestros Alumnos - Nuestro Mayor Orgullo como Academia ***

SAP Expert

El lenguaje SQL y la sentencia SELECT LECCION 6º DE 10 1 - El lenguaje SQL. Lenguaje de consulta estructurado, interfaz para cominucacrse con la base de datos y realizar operaciones de acceso y manipulacion de la informacion almacenda. Las sentencias SQL la podemos clasificar en 3. Lenguaje de definicion de datos(DDL) : se usa para definir estructuras como el esquema, la base de datos, las tablas de db, las restricciones, etc. Se dispone de CREATE, ALTER, DROP Lenguaje de manipulacion de datos (DML): se usa para manipular los datos. SELECT, INSERT,UPDATE, MODIFY, DELETE. Lenguaje de control de datos(DCL): se usa para dar o quitar permisos sobre los objetos a los que los usuarios se conectan a la base de datos. GRANT,REVOKE....

Acceder a esta publicación

Creado y Compartido por: Pablo Adrian Oggero

*** CVOSOFT - Nuestros Alumnos - Nuestro Mayor Orgullo como Academia ***

SAP Senior

SQL es un lenguaje de consulta de bases de datos, que se utiliza para comunicarse con la base de datos y realizar operaciones, este lenguaje es el mas utilizado por las bases de datos relacionales y aunque es el mas utilizado cada base de datos tiene sus propias extensiones. las sentencias del lenguaje SQL pueden ser clasificadas en tres, que serian * lenguaje de definición de datos DDL - CREATE. - ALTER. - DROP. * lenguaje de manipulación de datos. DML - SELECT - INSERT - UPDATE - MODIFY - DELETE * lenguaje de control de datos DCL - GRANT - REVOKE LA SENTENCIA SELECT esta sentencia permite obtener registros de la base de datos, filtrados o no. para obtener todos los resultados de una tabla se pone * y INTO TABLE cuando los...

Acceder a esta publicación

Creado y Compartido por: Jose Sebastian Salamanca Garcia

*** CVOSOFT - Nuestros Alumnos - Nuestro Mayor Orgullo como Academia ***

SAP Junior

1. La sentencia SELECT Se utiliza para acceder a las bases de datos de SAP. podemos acceder a los registros almacenados en todas las tablas. Sintaxis: SELECT<resultado> FROM<tabla> INTO<target> WHERE<condiciones>. Ejemplo. Si quisieramos obtener los registros de la tabla ZTABLA_USUARIOS, usariamos el siguiente codigo: SELECT * FROM ztabla_usuarios INTO TABLE ti_usuarios. APPENDING TABLE: Se utiliza junto con la sentencia SELECT y produce que los regsitros de las tablas que se selecionan se añadan al final de la tabla interna sin pisar los registros preexistentes en la tabla interna. INTO TABLE: Se utiliza junto con la sentencia SELECT y produce que los rgistros de las tablas base de datos que se selecionan,...

Acceder a esta publicación

Creado y Compartido por: Jairo Alexander Arias Linares

*** CVOSOFT - Nuestros Alumnos - Nuestro Mayor Orgullo como Academia ***

SAP Junior

Lenguaje SQL y la sentencia Select 1. Lenguaje SQL Sus siglas significan Lenguaje de Consulta estrucurado Es un lenguaje de consulta usado como interfaz para comunicarse con bases de datos y realizar operaciones de acceso y manipulacion de la informacion almacenada. Es un lenguaje sencillo de consulta que permite la seleccion, insercion, actualizacion y borrado de datos. Tiene la capacidad de hacer calculos avanzados en algebra. Es utilizado en empresas que almacenana datos en una base de datos. El lenguaje SQL es estandar mantenido por ANSI, por lo que las bases de datos son las mismas en la mayoria de los sistemas Algunos de bases de datos mas comunes que utiliza SQL son: ORACLE, SAP, HANA, MySQL, Microsoft SQLm Microsoft...

Acceder a esta publicación

Creado y Compartido por: Lucas Mera / Disponibilidad Laboral: FullTime + Carta Presentación

*** CVOSOFT - Nuestros Alumnos - Nuestro Mayor Orgullo como Academia ***

SAP SemiSenior

Sentencia Select nos permite acceder a la base de datos SELECT <cmpos necesitamos> FROM <tabla BD> INTO TABLE<tabla (o workarea)> WHERE <campo> = <valor>. recomendable realizar CLEAR o REFRESH a la tabla antes de la siguiente sentencia SELECT <cmpos necesitamos> FROM <tabla BD> APPENDING TABLE <tabla o workarea> WHERE <campo> = <valor>. SELECT SINGLE<cmpos necesitamos> FROM <tabla BD> INTO TABLE<tabla (o workarea)> WHERE <campo> = <valor>. "para obtener 1er ocurrencia SELECT SINGLE<cmpos necesitamos> FROM <tabla BD> INTO <variable> WHERE <campo> = <valor>. "para obtener 1er ocurrencia en variable SELECT <cmpos1>...

Acceder a esta publicación

Creado y Compartido por: Tania Luisa Diaz Corona / Disponibilidad Laboral: FullTime + Carta Presentación

*** CVOSOFT - Nuestros Alumnos - Nuestro Mayor Orgullo como Academia ***

SAP Senior

EL LENGUAJE SQL: SQL como sus siglas la identifican, se definen como "Lenguaje de consulta estructurado" este lenguaje puede ser clasificado en tres grupos que son los siguientes: - Lenguaje de definición de datos DDL: gracias a este lenguaje podemos definir los diferentes objetos que tenemos en nuestra base de datos, se utiliza para definir estructuras como son el esquema, la base de datos, las tablas de bases de datos, las restricciones, etc. Para definir las estructuras disponemos de 3 sentencias: *** CREATE: se utiliza para crear una base de datos, tablas bases de datos, vistas, etc. *** ALTER: se utiliza para modificar la estructura de la base de datos, por ejemplo añadir o borrar columnas de una tabla base de datos....

Acceder a esta publicación

Creado y Compartido por: Jean Carlos Lopez / Disponibilidad Laboral: FullTime

*** CVOSOFT - Nuestros Alumnos - Nuestro Mayor Orgullo como Academia ***

SAP Senior

SQL SELECT - Es la principal sentencia para acceder bases de datos. SELECT * FROM z_tabla INTO TABLE ti_tabla WHERE condiciones *ti-tabla es del mismo tipo que z_tabla APPENDING TABLE - No planchará el contenido de una tabla interna sino que lo agreagará al final. *Se recomienda hacer CLEAR Y REFRESH a la tabla interna Si solo vamos a obtener un campo es recomendable crear una tabla auxiliar solo con ese campo: SELECT id FROM z_tabla INTO TABLE ti_id. ****SY-SUBRC****** Validar siempre que sea 0 despues de cada sentencia para confirmar éxito o error. -Obtener el primer registro SELECT SINGLE * FROM z_tabla INTO wa_table -Obtener un campo del primer registro, va a una variable SELECT SINGLE id FROM z_tabla INTO v_id -Guardar...

Acceder a esta publicación

Creado y Compartido por: Armando Mayo Marquez / Disponibilidad Laboral: FullTime + Carta Presentación

 


 

👌Genial!, estos fueron los últimos artículos sobre más de 79.000 publicaciones académicas abiertas, libres y gratuitas compartidas con la comunidad, para acceder a ellas le dejamos el enlace a CVOPEN ACADEMY.

Buscador de Publicaciones:

 


 

No sea Juan... Solo podrá llegar alto si realiza su formación con los mejores!