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 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 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;

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 🚫