Función INSTR en Oracle

La función INSTR en ORACLE es una herramienta muy versátil para localizar cadenas dentro de otras cadenas. Permite identificar la posición de una subcadena específica en un texto más grande, lo que resulta especialmente útil en la manipulación y análisis de datos textuales. Además, ofrece flexibilidad al permitir parámetros que controlan desde dónde iniciar la búsqueda y qué ocurrencia de la subcadena encontrar.

En este artículo, primero explicaré la sintaxis básica de la función INSTR y luego presentaré ejemplos prácticos que mostrarán cómo utilizarla en situaciones reales. Esta función es ideal para tareas como la validación de datos, la extracción de información clave dentro de textos o la limpieza de cadenas en bases de datos. Por ejemplo, puedes usarla para encontrar la posición de un carácter específico en un campo de dirección o identificar la aparición de palabras clave en descripciones largas.

La función INSTR en Oracle es especialmente potente porque te permite especificar tanto la posición inicial de búsqueda como el número de ocurrencia que deseas localizar. Esto la hace extremadamente flexible para procesar cadenas de texto complejas. Además, se puede combinar fácilmente con otras funciones, como SUBSTR o LENGTH, para realizar operaciones avanzadas en los datos.

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

Sintaxis

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

INSTR(cadena , subcadena [, posicion_inicio [, ocurrencia]])
  • INSTR: nombre de la función.
  • cadena: campo o expresión donde debe buscar la subcadena.
  • subcadena: campo o cadena que quieres buscar dentro de la cadena.
  • posicion_inicio: indica donde debe comenzar a buscar (número entero diferente de cero)
  • ocurrencia: opcional, indica que ocurrencia debe mostrar. Por defecto siempre es 1.

Ejemplos

Buscar subcadena

En el siguiente ejemplo buscamos la subcadena ‘er’ en la expresión ‘Aprender, Conocer y Defender son verbos’. El resultado es un 7, que es la posición donde ha encontrado la primera ocurrencia:

SELECT
  INSTR( 'Aprender, Conocer y Defender son verbos', 'er' ) BUSQUEDA
FROM
  dual;
Buscar subcadena

Buscar subcadena en una ocurrencia concreta

En el siguiente ejemplo buscamos la subcadena ‘er’ en la expresión ‘Aprender, Conocer y Defender son verbos’, pero queremos encontrar cuando aparece por segunda vez. El resultado es 16 que es la posición donde ha encontrado la segunda ocurrencia:

-- MiguelTroyano.com
SELECT
  INSTR( 'Aprender, Conocer y Defender son verbos', 'er', 1, 2 ) BUSQUEDA
FROM
  dual;
Buscar subcadena en una ocurrencia concreta

Buscar subcadena en un campo

En el siguiente ejemplo buscamos la subcadena ‘yano’ en el campo nombre de la tabla empleados:

SELECT
  nombre,
  INSTR( nombre, 'yano' ) BUSQUEDA
FROM
  empleados;
Buscar subcadena en un campo

Ejemplo completo


🚫 Acceso restringido

Para visualizar el código de ejemplo, es necesario iniciar sesión.

Puedes hacerlo sin registrarte desde el lateral derecho o los comentarios, utilizando tu cuenta de Microsoft o Google.

Fin acceso restringido 🚫


Escribir un comentario