Función SUBSTR en Oracle

La función SUBSTR en ORACLE es una herramienta fundamental dentro de las funciones de cadena, diseñada para extraer subcadenas de texto a partir de una posición específica. Esta función proporciona una gran flexibilidad, ya que permite definir tanto la posición inicial como la longitud de la subcadena que deseas obtener. Es ideal para trabajar con datos textuales, donde solo necesitas analizar o manipular una parte de la información almacenada.

En este artículo, primero explicaré la sintaxis básica de la función SUBSTR y luego te mostraré ejemplos prácticos que ilustran cómo puedes usarla en diversas situaciones. Un caso típico es extraer las iniciales de un nombre, truncar identificadores o seleccionar fragmentos clave de una cadena como códigos o fechas incluidas en un campo de texto más extenso.

La función SUBSTR en Oracle es extremadamente versátil, ya que puede manejar cadenas de diferentes tipos de datos como CHAR y VARCHAR2, y permite trabajar tanto con posiciones positivas (desde el inicio de la cadena) como negativas (contando desde el final). Esto la hace ideal para tareas complejas como normalizar datos o procesar grandes volúmenes de información textual.

Para más información, puedes consultar la documentación oficial de ORACLE.

Sintaxis

Escribe la siguiente sintaxis para utilizar la función SUBSTR en Oracle:

SUBSTR ( cadena, inicio
                 [, longitud]
               )
  • SUBSTR: nombre de la función.
  • cadena: es la cadena de entrada para buscar el patrón.
  • inicio: es un entero que determina dónde comienza la subcadena.
  • longitud: determina el número de caracteres en la subcadena. Si se omite, la función devuelve todos los caracteres a partir de la posición de inicio.

Ejemplos

En el siguiente ejemplo utilizamos la función substr para extraer la palabra MiguelTroyano.com que comienza en la posición 4 y tiene una longitud de 17 caracteres.

SELECT
    SUBSTR ('En MiguelTroyano.com hay cientos de articulos', 4, 17) RESULTADO
FROM 
    dual;

Si necesitas empezar por el final debes indicar un numero negativa. En el siguiente ejemplo empezamos desde la posición -42 y nos quedamos con 17 caracteres. El resultado es idéntico al anterior ejemplo.

SELECT
    SUBSTR ('En MiguelTroyano.com hay cientos de articulos', -42, 17) RESULTADO
FROM 
    dual;

El funcionamiento con un campo de una tabla es idéntico a los anteriores ejemplos. Aquí puedes observar como hemos extraído de cada fila los caracteres desde la posición -7.

SELECT
    nombre,
    substr(nombre, -7) RESULTADO
FROM 
    empleados;

Escribir un comentario