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:
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
Das Folgende zeigt die akzeptierten Werte für das Match_Parameter.
Wenn das Match_Parameter nicht bereitgestellt wird, wird Oracle angenommen:
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ÄHLENIn 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ÄHLENDie 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ÄHLENIn 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ÄHLENDa 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ÄHLENAusgang:
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 ausIn 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.