¡Caminando hacia el éxito!

Aprende en Comunidad

Avalados por :

Importancia y consecuencias de la declaración de colección en tablas de base de datos

  • Creado 01/03/2024
  • Modificado 01/03/2024
  • 15 Vistas
0
Cargando...

¿Qué significa una declaración de colección para una tabla de base de datos?

¿Por qué no se debe hacer un aapend después de que se haya agregado una fila a una tabla de base de datos usando COLLECT?

Pedro Pascal
Se unió el 07/03/2018
Pinterest
Telegram
Linkedin
Whatsapp

4 Respuestas

0
Cargando...

Hola,

APPEND permite los duplicados, nunca verifica si los registros ya existen o no.

COLLECT verifica los registros e inserta el registro si no existe, si ya existe, la declaración de collect cambia los datos del registro (agrega valores de campos numéricos) e inserta en la tabla interna.

Puntos de recompensa, si es útil.

Gracias,

Chandu.

Respondido el 15/04/2024
LUCIANO RIOJA GHIOTTO
Se unió el 13/07/2019
0
Cargando...

Hola,

COLECTAR

Inserta líneas en una tabla interna en forma resumida.

Sintaxis

COLLECT <line> INTO <itab>.

La instrucción primero verifica si la tabla interna contiene una entrada con la misma clave. Si no lo hace, actúa como INSERT. Si ya existe una entrada en la tabla con la misma clave, COLLECT no inserta una nueva línea. En su lugar, agrega los valores de los campos numéricos del área de trabajo <line> a los valores en los campos correspondientes de la entrada de tabla existente.

ANEXAR

Anexa una o más líneas al final de una tabla de índices.

Sintaxis

APPEND <line>|LINES OF <jtab> TO <itab>.

Anexa una línea <line> o varias líneas de una tabla interna <jtab> a la tabla de índices <itab>.

Espero que esto te ayude,

Saludos,

Arunsri

Respondido el 15/04/2024
LUCIANO RIOJA GHIOTTO
Se unió el 13/07/2019
0
Cargando...

Ambas declaraciones se utilizan para poblar datos en una tabla interna. Cuando se utiliza la declaración APPEND, se añade un nuevo registro a la tabla interna y cuando se utiliza la declaración COLLECT, el programa verificará la clave para campos de caracteres y para los mismos campos de caracteres se sumarán todos los campos numéricos.

Por ejemplo:

APPEND line_spec A itab ORDENADO POR comp resultado.

Adición:

... ORDENADO POR comp

Efecto

Esta declaración añade una o más filas line_spec a una tabla de índices interna itab. Si itab es una tabla estándar, puedes usar ORDENADO POR para ordenar la tabla de una manera especificada. Usa resultado al añadir una sola fila a partir de la versión 6.10 para establecer una referencia a la fila añadida en forma de un símbolo de campo o una referencia de datos.

Para los tipos de tablas individuales, la adición se realiza de la siguiente manera:

Para tablas estándar, las filas se añaden directamente y sin verificar el contenido de la tabla interna.

Para tablas ordenadas, las filas se añaden solo si corresponden a la secuencia de ordenación y no crean entradas duplicadas con una clave de tabla única. De lo contrario, se genera una excepción no tratable.

Para tablas hash, no se pueden añadir filas.

La declaración APPEND establece sy-tabix en el índice de tabla de la última fila añadida.

Adición

... ORDENADO POR comp

Efecto

Esta adición solo se permite si se especifica un área de trabajo wa y si se utiliza una tabla estándar, donde wa debe ser compatible con el tipo de fila de la tabla. Puedes especificar el componente comp como se muestra en la sección Especificación de componentes, sin embargo, solo puedes acceder a un solo componente y no a atributos de clases utilizando el selector de componente de objeto.

La declaración se ejecuta en dos pasos:

Comenzando en la última fila, se busca una fila en la tabla en la que el valor del componente comp sea mayor o igual al valor del componente comp de wa. Si existe una fila así, el área de trabajo wa se incluye después de esta fila. Si no existe tal fila, el área de trabajo wa se incluye antes de la primera fila. El índice de tabla de todas las filas siguientes a las filas incluidas aumenta en uno.

Si el número de filas antes de la declaración es mayor o igual al número especificado en la definición de la tabla interna en la adición TAMAÑO INICIAL, la última fila recién creada se elimina.

Nota

Cuando se utiliza solo la declaración APPEND con la adición ORDENADO POR para llenar una tabla interna, esta regla resulta en una tabla interna que no contiene más filas de las especificadas en su definición después de TAMAÑO INICIAL y que está ordenada en orden descendente por el componente comp (clasificación).

Debería usarse la declaración SORT en lugar de APPEND ORDENADO POR.

Ejemplo

Creación de un ranking de los tres vuelos de una conexión que muestra los asientos más libres.

PARÁMETROS: p_carrid TIPO sflight-carrid,

p_connid TIPO sflight-connid.

DATOS: INICIO DE asientos,

fldate TIPO sflight-fldate,

seatsocc TIPO sflight-seatsocc,

seatsmax TIPO sflight-seatsmax,

seatsfree TIPO sflight-seatsocc,

FIN DE asientos.

DATOS seats_tab TIPO TABLA ESTÁNDAR DE asientos

TAMAÑO INICIAL 3.

SELECCIONAR fldate seatsocc seatsmax

DE sflight

EN seats

DONDE carrid = p_carrid Y

connid = p_connid.

seats-seatsfree = seats-seatsmax - seats-seatsocc.

APPEND seats A seats_tab ORDENADO POR seatsfree.

FIN SELECCIONAR.

COLLECT

Sintaxis

COLLECT wa EN itab resultado.

Efecto

Respondido el 15/04/2024
LUCIANO RIOJA GHIOTTO
Se unió el 13/07/2019
0
Cargando...

Ambas declaraciones se utilizan para poblar datos en una tabla interna. Cuando se utiliza la declaración APPEND, se agrega un nuevo registro a la tabla interna y cuando se utiliza la declaración COLLECT, el programa verificará la clave para campos de caracteres y para los mismos campos de caracteres se sumarán todos los campos numéricos.

Respondido el 15/04/2024
LUCIANO RIOJA GHIOTTO
Se unió el 13/07/2019

contacto@primeinstitute.com

(+51) 1641 9379
(+57) 1489 6964

© 2024 Copyright. Todos los derechos reservados.

Desarrollado por Prime Institute

¡Hola! Soy Diana, asesora académica de Prime Institute, indícame en que curso estas interesado, saludos!
Hola ¿Puedo ayudarte?