Saltar al contenido

Como Buscar Textos con la PL-SQL Function en Oracle INSTR en tus PL-SQL Packages en Oracle

PL-SQL Function en OracleSi aprendes como buscar textos o palabras dentro de otras cadenas de texto con la PL-SQL Function en Oracle INSTR podrás buscar datos fácilmente en campos de tipo texto o en archivos planos de texto en tus PL-SQL Packages en Oracle.

La PL-SQL Function en Oracle INSTR la puedes usar en cualquier lugar del código fuente de tus PL-SQL Packages en Oracle y también en los comandos de SQL como SELECT, DELETE, UPDATE e INSERT. La sintaxis de la función INSTR es la siguiente:

INSTR(<cadena de texto>, <texto a buscar>, <posición inicial>, <repeticiones>)

/* PL-SQL Function en Oracle */

<cadena de texto> = Texto de origen.

<texto a buscar> = Texto a buscar dentro de la <cadena de texto>.

<posición inicial> = Posición desde donde se quiere iniciar la búsqueda, por defecto la posición es 1.

<repeticiones> = Número de la repetición del texto dentro de la <cadena de texto>.

Revisemos algunos ejemplos prácticos para entender mejor cómo funciona el INSTR.

Ejemplo #1: Supone que debes buscar la posición de un apellido dentro de un nombre, veamos como se hace:

/* PL-SQL Function en Oracle */

Lin_pos Number;

Begin

Lin_pos:= INSTR(‘JUAN LUIS SALAS CORREA’,’SALAS’);

Dbms_output.put_line(‘Posición: ’||to_char(lin_pos));

End;

/* PL-SQL Function en Oracle */

Posición: 11

En este ejemplo de PL-SQL Function en Oracle se muestra como buscar una posición de texto, como resultado este bloque muestra la posición 11 que es donde comienza la palabra SALAS.

TÚ REPORTE: “Cómo Construir un SELECT Eficiente en ORACLE en Solo 7 Pasos”

¡ Haz Click Aquí y Descárgalo GRATIS Ahora !

Ejemplo #2: Supone que debes buscar la posición de la segunda repetición de una palabra, veamos como se hace:

/* PL-SQL Function en Oracle */

Select INSTR(‘CORPORACION FLORA’,’OR’,1,2) posicion from dual;

/* PL-SQL Function en Oracle */

posicion 5

En este ejemplo se muestra como también se puede usar la PL-SQL Function en Oracle INSTR dentro de un comando SQL, en la función se agregaron los parámetros posición inicial con valor 1 y la repetición con valor 2, como resultado se muestra la posición 5 que es donde comienza la palabra OR por segunda vez.

Ejemplo #3: Usemos el mismo ejemplo anterior pero cambiando la posición inicial de la búsqueda, veamos como queda:

/* PL-SQL Function en Oracle */

Select INSTR(‘CORPORACION FLORA’,’OR’,3,2) posicion from dual;

/* PL-SQL Function en Oracle */

posicion 15

En este ejemplo de PL-SQL Function en Oracle se cambió la posición inicial al valor 3 y se mantuvo la repetición con el valor 2, como resultado esta consulta muestra el valor 15, que es donde comienza la segunda repetición de la palabra OR a partir de la posición inicial 3.

Te propongo que pruebes de inmediato este ejemplo en tu Base de Datos con tus propias tablas, PL-SQL Procedures en Oracle y PL-SQL Function en Oracle, para que comiences a ejercitar la mano y aprendas a dominar esta nueva técnica en tus PL-SQL Packages en Oracle.

Estoy muy interesado en conocer tu opinión y/o comentario sobre este artículo, también cuéntame sobre qué es lo que quieres saber de PL-SQL Function en Oracle y/o dime cuál es tu principal frustración a la hora de trabajar con PL-SQL Function en Oracle. Estaré muy atento respondiendo tus preguntas y/o comentarios, gracias.

Saludos

Roberto Vicencio – Escritor del Reporte:

Cómo Construir un SELECT Eficiente en ORACLE en Solo 7 Pasos

7 comentarios en «Como Buscar Textos con la PL-SQL Function en Oracle INSTR en tus PL-SQL Packages en Oracle»

    1. Hola Liliana, gracias por comunicarte, pronto voy a dar un seminario en vivo sobre como construir un Select de multiples tablas, debes estar atenta para que reserves tu cupo, el dia y la hora la publicare en el blog o por email, gracias.

      PD: Ya obtuviste mi reporte gratuito de ‘Cómo Construir un Select Eficiente en Oracle en Solo 7 Pasos’, si aún no lo has hecho puedes descargarlo desde aquí:
      https://DominaTusPackagesEn0racle.com

      Saludos
      Roberto Vicencio – Para Tu Éxito con Oracle.

  1. Como puedo hacer para tomar el valor de una columna con mas de un valor separado por una coma
    Columna(Valor1, Valor 2, Valor3…) sin que me los separe por caracter ,
    Quiero que me entregue
    valor1, valor 2,valor 3…
    puedo imaginar que es algo asi pero me entrega
    v,a,l,o,r,1,v,a,l,o,r,2 etc…

    1. Hola Abraham para resolver esto debes usar un ciclo For y la función Substr() como el siguiente, cuando se llega a la coma se procesa el valor, pruébalo con tus datos:

      lst_texto:= ‘Valor1,Valor2,Valor3’;
      lst_valor:= ”; // limpiar variable
      FOR i IN 1..lenght(lst_texto) LOOP
      if substr(lst_texto,i,1) = ‘,’ then
      // se obtiene el valor antes de la coma y se procesa lst_valor
      lst_valor:= ”; // limpiar variable
      else
      // concatenar caracter
      lst_valor:= lst_valor || substr(lst_texto,i,1);
      end if;
      END LOOP;

      PD: Quieres aprender mas técnicas como esta de manera profesional ingresa a este curso gratis por tiempo limitado:
      https://dominatuspackagesen0racle.com/tiwgnecu

      Te veo dentro del curso para darte la bienvenida.

      Saludos cordiales,
      Roberto Vicencio | Para Tu Éxito con Oracle.

Deja una respuesta

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

Este sitio usa Akismet para reducir el spam. Aprende cómo se procesan los datos de tus comentarios.