Funciones de concatenación

El nuevo Open SQL permite el uso de las siguientes funciones de concatenación en las sentencias de lectura:

  • CONCAT

CONCAT( arg1, arg2 )
La función realiza la concatenación de las cadenas de caracteres arg1 y arg2. Los espacios en blanco finales del arg1, arg2 se ignoran en el resultado. La longitud máxima del resultado es 1333.

  • CONCAT_WITH_SPACE

CONCAT_WITH_SPACE( arg1, arg2, spaces )
La función realiza la concatenación de cadenas en arg1 y arg2 como CONCAT dejando un número de espacios entre los argumentos. El número de espacios en blanco especificados en spaces se inserta entre arg1 y arg2. La longitud máxima del resultado es 1333.

  • &&

… operand1 && operand2  [&& operand3 … ] …
El operador && concatena las cadenas de caracteres en dos operandos adyacentes a una cadena de caracteres única. Los operandos pueden tener los siguientes tipos de datos:

  • Tipos de tipo CHAR, CLNT, CUKY, LANG y UNIT para columnas de fuentes de datos.
  • APAB tipo c para variables de host y expresiones de host.
  • Texto del campo de texto de tipo c.

El operador && solo se puede usar para concatenar los operandos básicos indicados anteriormente. Cualquier otra expresión no puede ser concatenado. El resultado del encadenamiento no debe superar los 255 caracteres.
Los espacios en blanco al final se manejan de la siguiente manera:

  • Precisamente, se respeta un espacio en blanco en las variables declaradas mediante CONSTANTS y ​​en los literales de campo de texto que consisten únicamente en espacios en blanco.
  • En todos los demás casos, los espacios en blanco finales se cortan a la derecha.

El resultado tiene el tipo CHAR en la longitud resultante y puede asignarse a los tipos ABAP c y string.
Si el operando de una expresión de cadena tiene el valor nulo, el resultado de la expresión de cadena completa es el valor nulo.

  • Ejemplo práctico

En un programa ejecutable declaramos la variable LV_CHAR de tipo C con una longitud de 6 y le asignamos el valor ‘LOGALI’. Realizamos una comprobación que verifica si en la tabla de base de datos estándar DEMO_EXPRESSIONS existe el registro con el valor L en la columna ID. Si el registro no existe, lo insertamos en la tabla añadiendo los valores ‘AABbCDDe’ y ‘123456’ en las columnas CHAR1 y CHAR2.  A continuación, seleccionamos el mismo registro con la instrucción SELECT en una estructura declarada en línea con @DATA que va a contener los siguientes componentes:

  • ID (Columna de la tabla)
  • CHAR1 (Columna de la tabla)
  • CHAR2 (Columna de la tabla)
  • CONCAT (La concatenación entre los valores de las columnas CHAR1 y CHAR2)
  • CONCAT_WITH_SPACE (La concatenación entre los valores de las columnas CHAR1 y la variable LV_CHAR separados por dos caracteres de espacio)
  • AMPERSAND (La concatenación entre los valores de las columnas CHAR1, CHAR2, el valor ‘HANA-‘ y el valor de la variable LV_CHAR)

Por último, mostramos los resultados del SELECT en una ventana utilizando el método estático DISPLAY de la clase CL_DEMO_OUTPUT.

Al ejecutar el programa obtenemos la siguiente salida:

2 comentarios de “Funciones de concatenación

  1. Laura dice:

    Hola Patricia,
    Esto puede ser porque estás codificando este función en una versión de ABAP anterior a la 7.51. La función “CONCAT_WITH_SPACE” está disponible solo hasta esta versión de ABAP 7.51, por ello no se reconoce.
    Un saludo.

Deja una respuesta

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