Oracle regexp_ik

Oracle regexp_ik
Saiten sind ein bedeutender Baustein, wenn es um Datenbanken geht. Infolgedessen ist es wahrscheinlicher, dass Ihre Datenbank aus String -Daten besteht als andere Datentypen. Es ist daher von Vorteil, Tools und Ressourcen zu haben, mit denen Sie mit String- und String-ähnlichen Daten arbeiten können.

In diesem Tutorial werden wir die Verwendung der Regexp_like () -Funktion in Oracle -Datenbanken diskutieren. Diese Funktion ermöglicht es uns, ein reguläres Expressionsmuster auszuführen, das bei einem bestimmten Wertssatz übereinstimmt.

Oracle Regexp_ -ähnliche Funktion

Die Funktion regexp_ik ähnelt dem gleichen Bedingungsoperator. Im Gegensatz zum ähnlichen Operator führt diese Funktion jedoch eine Regex -Muster -Übereinstimmung anstelle einer einzelnen Musteranpassung aus.

Dies macht es im Vergleich zum ähnlichen Operator fortgeschrittener und zuverlässiger. Dies liegt daran. Dies kann schnell dazu beitragen, die Suchergebnisse innerhalb eines bestimmten Satzes einzugrenzen.

Die Funktionssyntax ist wie nachstehend beschrieben:

Regexp_like (Source_String, Search_Pattern, [match_parameter]);

Die Funktion akzeptiert die Argumente wie unten gezeigt:

  1. Source_String - Der Parameter "Source_String" definiert den String, der durchsucht werden muss. Dies kann eine wörtliche Zeichenfolge oder eine Spalte mit unterstütztem Datentyp sein. Zu den unterstützten Datentypen gehören char, varchar2, nchar, Nvarchar2, CLOB usw.
  2. Search_Pattern -Dieser Parameter wird verwendet, um das reguläre Expressionsmuster an die Eingabezeichenfolge anzugeben.

Im Folgenden sind die akzeptierte reguläre Expressionsyntax und Kombinationen aufgeführt:

Operator Beschreibung
^ Übereinstimmung mit dem Beginn einer String, wie im match_parameter definiert.
$ Bezeichnet das Ende einer Zeichenfolge, wie im match_parameter definiert.
* Übereinstimmen null oder mehr Ereignisse
+ Übereinstimmen ein oder mehrere Ereignisse
? Übereinstimmen Null oder ein Ereignis
^b Entspricht dem Anfängercharakter
$ b Entspricht dem Zeichen des Zeilens.
. C Passen Sie einen beliebigen Charakter im unterstützten Charakter -Set außer NULL an
[]D Gibt eine Liste von Elementen an und möchte mindestens einem Element in der Liste übereinstimmen
() Ermöglicht das Muster als einzelne Unterexpression behandelt werden.
M Entspricht genau M -Zeiten.
M, Entspricht mindestens m -Zeiten.
m, n Entspricht mindestens m -Zeiten, aber nicht mehr als n -mal.
\Ne Rückreferenzausdruck (wobei n eine Ganzzahl zwischen 1 und 9 ist) entspricht der n -ten Subexpression.
[… ]F Gibt das Kollationselement an
[::]G Gibt die Charakterklassen an
[==] h Gibt äquivalente Klassen an.

Um mehr über die mehrsprachige reguläre Expressionssyntax und Verwendung in Oracle -Datenbanken zu erfahren, sollten Sie den unten angegebenen Link betrachten:

https: // docs.Orakel.com/cd/b12037_01/server.101/B10759/ap_posix001.HTM#I690819

  • MATCH_PARAMETER - Dies beschreibt eine Zeichenfolge, mit der das Standard -Matching -Verhalten der Funktion geändert wird. Der Match_Parameter ähnelt der der Funktion regexp_substr ().

Das Folgende zeigt die akzeptierten Werte für das Match_Parameter.

  1. 'C' - führt eine Fallempfindlichkeit durch.
  2. 'I' - fordert die Funktion an, eine von Fall unempfindliche Suche durchzuführen.
  3. 'n' - ermöglicht es dem Periodencharakter, mit dem neuen Zeilenzeichen übereinzustimmen. Standardmäßig wird es als Wildcard -Charakter behandelt.
  4. 'M' - Ermöglicht dem Ausdruck mehrere Zeilen, in denen das Pflegecharakter den Start bezeichnet und das Dollar -Zeichen ($) das Ende der Linie angibt. Standardmäßig wird angenommen, dass der Ausdruck eine einzige Zeile ist.
  5. 'x' endet die Funktion, um Whitespace -Zeichen zu ignorieren.

Wenn das Match_Parameter nicht bereitgestellt wird, wird Oracle angenommen:

  1. Der Periodencharakter entspricht keinem neuen Zeilencharakter.
  2. Das Source_String ist eine einzelne Eingabe.
  3. Die Standard -Fallempfindlichkeit ist im Parameter nls_sort definiert.

Sobald die Funktion die gewünschte Operation ausführt, sollte die Zeile, die dem angegebenen Muster entspricht, zurückgeben.

Beispiel Verwendung

Der folgende Abschnitt enthält Beispiele, die die Verwendung der Regexp_ -ähnlichen Funktion demonstrieren,.

Angenommen, wir haben eine Tabelle mit Mitarbeiterinformationen wie gezeigt:

Beispiel 1 - Grundnutzung

Das folgende Beispiel zeigt, wie die Funktion verwendet wird, um in der Tabelle der Mitarbeiter nach einem übereinstimmenden Namen zu suchen.

WÄHLEN
Vorname Nachname
Von Mitarbeitern
Wo regexp_like (first_name, 'p');

In diesem Fall sollte die obige Abfrage alle übereinstimmenden Namen zurückgeben, bei denen der First_Name 'P enthält.''

Ein Beispielausgang ist wie gezeigt:

Beispiel 2 - Passen Sie den Beginn der Linie an

Im folgenden Beispiel zeigen wir, wie Sie mit dem Match_Parameter den Beginn der Zeile durchsuchen, die durch das Caret -Charakter gekennzeichnet ist.

WÄHLEN
Vorname Nachname
Von Mitarbeitern
Wo regexp_like (first_name, '^H', 'i');

Die resultierende Tabelle:

Beispiel 3 - Übereinstimmung mit dem Ende der Linie

In ähnlicher Weise können wir das Muster am Ende der Zeile mit dem 'I' als Wert des Match_Parameter und dem Dollarzeichen mit dem Ende der Linie übereinstimmen.

WÄHLEN
Vorname Nachname
Von Mitarbeitern
Wo regexp_like (last_name, 'r $', 'i');

In diesem Fall sollte die obige Abfrage die Matching -Werte wie gezeigt zurückgeben:

Beachten Sie, dass alle Werte der Spalte Last_Name mit einem 'r enden.''

Beispiel 4 - Führen Sie eine sensible Fallsuche durch

Im folgenden Beispiel setzen wir den Wert des Match_Parameter auf 'C', um die Fallempfindlichkeit zu aktivieren.

WÄHLEN
Vorname Nachname
Von Mitarbeitern
Wo regexp_like (first_name, 'julia', 'c');

Da wir im obigen Beispiel die Fallempfindlichkeit mit einem Kleinbuchstabensuchmuster verwenden, stimmt die Abfrage nicht über die Werte überein, da alle Werte in der Tabelle mit Kamel bezogen sind.

Beispiel 5 - Führen Sie eine unempfindliche Suche durch

Um das obige Szenario zu umrunden, können wir eine von Fall unempfindliche Übereinstimmung durchführen, indem wir den Wert des match_parameter auf 'i' festlegen.

Beispiel:

WÄHLEN
Vorname Nachname
Von Mitarbeitern
Wo regexp_like (first_name, 'julia', 'i');

Ausgang:

In diesem Fall können wir sehen, dass die Abfrage zwei Werte entspricht.

Beispiel 6 - Übereinstimmend mehrmals den Charakter übereinstimmen.

Wir ermöglichen es auch, dass die Abfrage einen bestimmten vorhergehenden Charakter einer definierten Häufigkeit entspricht. Ein Beispiel ist wie gezeigt:

Wählen Sie First_Name, last_name aus
Von Mitarbeitern
Wo regexp_like (last_name, 'e 2', 'i');

In der obigen Beispielabfrage suchen wir nach allen übereinstimmenden Zeilen, in denen der Wert zwei 'E' -Zeichen in der Spalte Last_Name enthält.

Die resultierenden Werte sind wie gezeigt:

Wie Sie sehen können, enthalten alle Werte in der Spalte Last_Name zwei 'E' Zeichen.

Abschluss

In diesem Beitrag haben wir besprochen, wie die Funktion der Regexp_ -ähnlichen Funktion in Oracle -Datenbanken verwendet wird, um nach einem regulären Ausdrucksmuster zu suchen.