Función SUBSTR( )

Devuelve una subcadena especificada de una cadena.

Sintaxis

SUBSTR(cadena; inicio; longitud)

Parámetros

Nombre Tipo Descripción
cadena carácter El valor de donde se extrae la subcadena.
inicio numérico La posición de carácter inicial de la subcadena.
longitud numérico

El número de caracteres en la subcadena.

Si la longitud es 0, la salida aparece en blanco.

Salida

Carácter.

Ejemplos

Ejemplos básicos

Valor de entrada de caracteres literales

Devuelve "BCD":

SUBSTR("ABCDEF"; 2; 3)

Devuelve "EF":

SUBSTR("ABCDEF"; 5; 10)

Análisis de los datos de caracteres estructurados

Devuelve "189543":

SUBSTR("***189543***"; 4; 6)

Devuelve el año de cuatro dígitos a partir de un campo de caracteres que contiene fechas con el formato "MM/DD/AAAA":

SUBSTR(DATE; 7; 4)

Ejemplos avanzados

Incremento de la longitud del campo

Utilice SUBSTR( ) para incrementar la longitud de un campo de caracteres. El incremento de la longitud de un campo es una tarea común de armonización que puede necesitar realizar antes de unir o anexar dos campos.

El siguiente ejemplo completa el campo Descripción_del_producto con espacios en blanco para crear el campo calculado Descripción_del_producto_extensa con una longitud de 50 caracteres.

DEFINE FIELD Descripción_del_producto_extensa COMPUTED SUBSTR(Descripción_del_producto; 1; 50)

Observaciones

Cómo funciona

La función SUBSTR( ) devuelve caracteres del valor cadena que comienzan desde la posición de caracteres especificada por inicio. El número de caracteres devuelto se especifica en longitud.

Cómo maneja los espacios SUBSTR( )

Los espacios al principio, al final o en el medio de la cadena se tratan como caracteres. Los espacios captados por inicio y longitud se incluyen en la cadena de salida.

Cómo funciona el relleno

Si el valor longitud excede el número de caracteres, incluidos los espacios al final, desde la posición de inicio hasta el final de la cadena, la cadena de salida puede rellenarse o no por la derecha con espacios:

Relleno con espacios

Si utiliza SUBSTR( ) dentro de un comando que crea un campo, la salida se rellena con espacios.

Relleno al crear un campo calculado

Crea el campo calculado Descripción_del_producto_extensa, con una longitud de 50 caracteres, sobre la base del campo físico Descripción_del_producto, con una longitud de 24 caracteres:

DEFINE FIELD Descripción_del_producto_extensa COMPUTED SUBSTR(Descripción_del_producto; 1; 50)

Relleno al extraer un campo físico

Extrae el campo calculado Descripción_del_producto_extensa, con una longitud de 50 caracteres, a una nueva tabla, sobre la base del campo físico Descripción_del_producto, con una longitud de 24 caracteres:

EXTRACT FIELDS SUBSTR(Descripción_del_producto; 1; 50) AS "Descripción_del_producto_extensa" TO Nueva_tabla

Sin relleno con espacios

Si utiliza SUBSTR( ) en una definición de variable o una expresión, la salida no se rellena con espacios.

Sin relleno al definir una variable

Crea la variable v_desc_prod, con una longitud de 24 caracteres, sobre la base de una longitud de campo de Descripción_del_producto:

ASSIGN v_desc_prod = SUBSTR(Descripción_del_producto; 1; 50)

Nota

Aun cuando SUBSTR( ) especifique una longitud de 50 caracteres, la salida se limita a la longitud del campo Descripción_del_producto.

Funciones relacionadas

SUBSTR( ) y SPLIT( ) devuelven un segmento de datos de una cadena de origen más extensa.

  • SUBSTR( ) identifica el segmento sobre la base de una posición numérica de los caracteres.
  • SPLIT( ) identifica el segmento sobre la base de un carácter separador.
Guía de creación de scripts de ACL 14.1