Si 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”
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”
Interesada en como construir un SELECT eficiente
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.
Gracias Roberto, me ayudo mucho…
Hola Diana, gracias por comunicarte y por tu comentario, si te ha gustado la información de este blog te invito a que compartas el enlace https://dominatuspackagesen0racle.com/ con tus amigos o personas que también les pueda interesar esta contenido, gracias.
Saludos
Roberto Vicencio – Para Tu Éxito con Oracle.
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…
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.
INSTR(t.usuc_valor,p.chec_reloj)>0))