Hola,
Hoy les traigo como entender y ejecutar una expresión regular en un bloque anonimo de PL/SQL.
String vca_expreregular = '^|\d{ 0-9 }\=\,\[A-Z][0-9]\,\|$'
Descripcion:
Nota:
Todo esto dentro de ' ' (comillas simples).
Ejemplo de uso en PL/SQL:
¿Que es un bloque anónimo?
Un bloque anónimo es un subprograma que se utiliza para realizar una acción, para calcular y devolver un valor; se caracteriza porque no tiene nombre y se suele ejecutar y crear desde PL/SQL.
Todo bloque anónimo debe acabar en . para que sea almacenado en el buffer SQL. para poder ejecutarse luego con la orden run.
--Bloque anonimo, salida por consola DBMS
DECLARE
vca_valor varchar2(1000);
vca_expreregular varchar2(1000);
pca_resultado varchar2(1000);--salida
pca_datos varchar2(1000);--salida
BEGIN
--Declaracion del valor de las variables
vca_valor := '|101=,A34,|1=,A7,A10,|22=,A9,|60=,A26,|105=,A29|';
vca_expreregular := '^|\d{ 0-9 }\=\,\[A-Z][0-9]\,\|$';
-- Sentencia
SELECT 1
INTO pca_datos
FROM DUAL
WHERE REGEXP_LIKE(vca_valor, '^|\d{ 0-9 }\=\,\[A-Z][0-9]\,\|$');
-- Imprimir por consola (Salida de DBMS)
dbms_output.PUT_LINE('Valores encontrados ' || pca_datos);
EXCEPTION
-- Sentencia control de excepcion
WHEN OTHERS THEN
pca_resultado := 'Error, en la expresion regular: '||SQLCODE||'-'||SQLERRM;
END;--Fin bloque anonimo
¿Que es DUAL?
DUAL en Oracle, es una tabla del sistema que existe para ejecutar ciertas consultas donde no hay una tabla creada o se utiliza para ejecutar funciones predefinidas como sysdate.
Nota:
Para ver la impresion de este bloque anonimo, se utiliza la salida por consola DBMS.
SQL Developer -> Ver -> Salida DBMS.
Hoy les traigo como entender y ejecutar una expresión regular en un bloque anonimo de PL/SQL.
String vca_expreregular = '^|\d{ 0-9 }\=\,\[A-Z][0-9]\,\|$'
Descripcion:
- Despues del caracter ^ (acento circunflejo), se coloca el caracter con el cual empezara la expresion regular, en este caso se especifica que la cadena a la cual se le va a aplicar la expresion regular, comienza con | (pleca o barra vertical).
- Se utiliza el caracter \ (backslash), para especificar que obligatoriamente despues del caracter | (pleca o barra vertical), van numeros del 0 al 9, dentro de { } (corchetes). La letra d no es obligatoria, puede ser opcional.
- Se especifica que obligatoriamente despues de los numeros, va el caracter = (igual).
- Se especifica que obligatoriamente despues del caracter = (igual), va el caracter , (coma).
- Se especifica que obligatoriamente despues del caracter , (coma), van letras de la A a la Z, dentro de llaves [ ] y/o numeros del 0 al 9, tambien dentro de llaves.
- Se especifica que obligatoriamente despues de las letras y de los numeros, va obligatoriamente el caracter , (coma).
- Se especifica que obligatoriamente despues del caracter , (coma), va el caracter | (pleca o barra vertical).
- Y se finaliza la expresion con el caracter $ (signo de pesos).
Nota:
Todo esto dentro de ' ' (comillas simples).
Ejemplo de uso en PL/SQL:
¿Que es un bloque anónimo?
Un bloque anónimo es un subprograma que se utiliza para realizar una acción, para calcular y devolver un valor; se caracteriza porque no tiene nombre y se suele ejecutar y crear desde PL/SQL.
Todo bloque anónimo debe acabar en . para que sea almacenado en el buffer SQL. para poder ejecutarse luego con la orden run.
--Bloque anonimo, salida por consola DBMS
DECLARE
vca_valor varchar2(1000);
vca_expreregular varchar2(1000);
pca_resultado varchar2(1000);--salida
pca_datos varchar2(1000);--salida
BEGIN
--Declaracion del valor de las variables
vca_valor := '|101=,A34,|1=,A7,A10,|22=,A9,|60=,A26,|105=,A29|';
vca_expreregular := '^|\d{ 0-9 }\=\,\[A-Z][0-9]\,\|$';
-- Sentencia
SELECT 1
INTO pca_datos
FROM DUAL
WHERE REGEXP_LIKE(vca_valor, '^|\d{ 0-9 }\=\,\[A-Z][0-9]\,\|$');
-- Imprimir por consola (Salida de DBMS)
dbms_output.PUT_LINE('Valores encontrados ' || pca_datos);
EXCEPTION
-- Sentencia control de excepcion
WHEN OTHERS THEN
pca_resultado := 'Error, en la expresion regular: '||SQLCODE||'-'||SQLERRM;
END;--Fin bloque anonimo
¿Que es DUAL?
DUAL en Oracle, es una tabla del sistema que existe para ejecutar ciertas consultas donde no hay una tabla creada o se utiliza para ejecutar funciones predefinidas como sysdate.
Nota:
Para ver la impresion de este bloque anonimo, se utiliza la salida por consola DBMS.
SQL Developer -> Ver -> Salida DBMS.
0 comentarios :
Publicar un comentario