Oracle regexp_like

Oracle regexp_like
Las cadenas son un bloque de construcción significativo cuando se trata de bases de datos. Como resultado, es más probable que su base de datos esté compuesta por datos de cadenas que otros tipos de datos. Por lo tanto, es beneficioso tener herramientas y recursos para ayudarlo a trabajar con datos de cadena y cadena.

En este tutorial, vamos a discutir el uso de la función regexp_like () en las bases de datos Oracle. Esta función nos permite realizar un patrón de expresión regular que coincide en un conjunto dado de valores.

Oracle Regexp_like Función

La función regularmente similar es similar al operador condicional similar. Sin embargo, a diferencia del operador similar, esta función realiza una coincidencia de patrón regex en lugar de una sola coincidencia de patrones.

Esto lo hace más avanzado y confiable en comparación con el operador similar. Esto se debe a que la expresión regular nos permite especificar un patrón más preciso y personalizable. Esto puede ayudar rápidamente a reducir los resultados de búsqueda dentro de un conjunto dado.

La sintaxis de la función es como se describe a continuación:

Regexp_like (fuente_string, search_pattern, [match_parameter]);

La función acepta los argumentos como se muestra a continuación:

  1. Source_String: el parámetro Source_String define la cadena que debe buscar. Esta puede ser una cadena literal o una columna de tipo de datos compatible. Los tipos de datos compatibles incluyen Char, VARCHAR2, NCHAR, NVARCHAR2, CLOB, etc.
  2. Search_pattern -Este parámetro se usa para especificar el patrón de expresión regular que se coincide con la cadena de entrada.

Las siguientes son la sintaxis de expresión regular aceptada y las combinaciones:

Operador Descripción
^ Coincide con el comienzo de una cadena como se define en el match_parameter.
ps Denota el final de una cadena como se define en el match_parameter.
* Coincidir con cero o más ocurrencias
+ Coincidir con uno o más ocurrencias
? Coincidir con cero o uno
^B Coincide con el personaje de inicio de la línea
$ B Coincide con el personaje de fin de línea.
. C Coincidir con cualquier personaje en el conjunto de personajes compatibles excepto nulo
[]d Especifica una lista de elementos y desea hacer coincidir al menos un elemento en la lista
() Permite que el patrón sea tratado como una sola subexpresión.
metro Coincide exactamente m veces.
metro, Coincide al menos m veces.
Minnesota Coincide al menos m veces pero no más que n veces.
\nortemi La expresión de la referencia de retroceso (donde n es un entero entre 1 y 9) coincide con la nth subexpresión.
[…] F Especifica el elemento de recopilación
[::]gramo Especifica las clases de caracteres
[==] H Especifica clases equivalentes.

Para descubrir más sobre la sintaxis de expresión regular multilingüe y el uso en las bases de datos de Oracle, considere el enlace que se proporciona a continuación:

https: // documentos.oráculo.com/cd/b12037_01/servidor.101/b10759/ap_posix001.HTM#i690819

  • Match_parameter: esto describe una cadena utilizada para alterar el comportamiento coincidente predeterminado de la función. El Match_Parameter es similar al de la función regexp_substr ().

Lo siguiente muestra los valores aceptados para el match_parameter.

  1. 'C': realiza una búsqueda sensible a la caja.
  2. 'I': le dice a la función que realice una búsqueda insensible.
  3. 'n' - permite que el personaje del período coincida con el nuevo personaje de línea. Por defecto, se trata como un personaje comodín.
  4. 'M': permite que la expresión tenga múltiples líneas donde el caret (^) carácter denota el inicio y el signo del dólar ($) indica el final de la línea. Por defecto, se supone que la expresión es una sola línea.
  5. 'x': permite la función para ignorar los caracteres de espacios blancos.

Si no se proporciona Match_Parameter, Oracle asumirá:

  1. El personaje del período no es igual a un personaje de Newline.
  2. El Source_String es una entrada de una sola línea.
  3. La sensibilidad del caso predeterminada se define en el parámetro NLS_SORT.

Una vez que la función realiza la operación deseada, debe devolver la fila que coincide con el patrón especificado.

Uso de ejemplo

La siguiente sección proporciona ejemplos que demuestran el uso de la función regular.

Supongamos que tenemos una tabla que contiene información de los empleados como se muestra:

Ejemplo 1 - Uso básico

El siguiente ejemplo muestra cómo usar la función para buscar un nombre coincidente en la tabla de empleados.

SELECCIONAR
nombre Apellido
De empleados
Donde regexp_like (first_name, 'p');

En este caso, la consulta anterior debe devolver todos los nombres coincidentes donde el primer_name incluye 'P.'

Una salida de ejemplo es como se muestra:

Ejemplo 2 - Haga coincidir el comienzo de la línea

En el ejemplo a continuación, demostramos cómo usar el Match_Parameter para buscar el comienzo de la línea denotada por el personaje del careto.

SELECCIONAR
nombre Apellido
De empleados
Donde regexp_like (first_name, '^h', 'i');

La tabla resultante:

Ejemplo 3 - Haga coincidir el final de la línea

Del mismo modo, podemos hacer coincidir el patrón al final de la línea usando el 'I' como el valor del Match_Parameter y el signo del dólar para denotar el final de la línea.

SELECCIONAR
nombre Apellido
De empleados
Donde regexp_like (last_name, 'r $', 'i');

En este caso, la consulta anterior debe devolver los valores coincidentes como se muestra:

Observe que todos los valores de la columna de Last_Name terminan con un 'R.'

Ejemplo 4 - Realice una búsqueda sensible a la caja

En el ejemplo a continuación, establecemos el valor del Match_Parameter en 'C' para habilitar la coincidencia sensible al caso.

SELECCIONAR
nombre Apellido
De empleados
Donde regexp_like (first_name, 'julia', 'c');

En el ejemplo anterior, dado que estamos utilizando la sensibilidad de los casos con un patrón de búsqueda en minúsculas, la consulta no coincidirá con ningún valor ya que todos los valores en la tabla son con casco de camello.

Ejemplo 5 - Realice una búsqueda insensible a un caso

Para circunnavegar el escenario anterior, podemos realizar una coincidencia insensible al caso estableciendo el valor del parámetro Match_Parameter en 'I'.

Ejemplo:

SELECCIONAR
nombre Apellido
De empleados
Donde regexp_like (first_name, 'julia', 'i');

Producción:

En este caso, podemos ver que la consulta coincide con dos valores.

Ejemplo 6 - CARÁCTER PRECIONADO VARIAS VARIAS.

También permitimos que la consulta coincida con un carácter anterior específico un número definido de veces. Un ejemplo es como se muestra:

Seleccione First_Name, Last_Name
De empleados
Donde regexp_like (last_name, 'e 2', 'i');

En la consulta de ejemplo anterior, buscamos todas las filas coincidentes donde el valor contiene dos caracteres 'E' en la columna de Last_Name.

Los valores resultantes son como se muestra:

Como puede ver, todos los valores en la columna Last_Name contienen dos caracteres 'E'.

Conclusión

En esta publicación, discutimos cómo usar la función regexp_like en las bases de datos Oracle para buscar un patrón de expresión regular.