Oracle Regexp_ Like

Oracle Regexp_ Like
Strings są znaczącym elementem konstrukcyjnym, jeśli chodzi o bazy danych. W rezultacie bardziej prawdopodobne jest, że Twoja baza danych będzie składać się z danych ciągów niż inne typy danych. Dlatego korzystne jest posiadanie narzędzi i zasobów, które pomogą Ci pracować z danymi String i String podobnymi.

W tym samouczku omówimy użycie funkcji RegexP_OKS (). Ta funkcja pozwala nam wykonać dopasowanie wzorca wyrażenia regularnego na danym zestawie wartości.

Funkcja Oracle Regexp_

Funkcja podobna do RegexP_ jest podobna do podobnego operatora warunkowego. Jednak w przeciwieństwie do operatora podobnego, ta funkcja wykonuje dopasowanie wzorca regularnego zamiast dopasowywania pojedynczego wzoru.

To sprawia, że ​​jest bardziej zaawansowany i niezawodny w porównaniu z podobnym operatorem. Wynika to z faktu, że wyrażenie regularne pozwala nam określić bardziej precyzyjny i konfigurowalny wzór. Może to szybko pomóc zawęzić wyniki wyszukiwania w danym zestawie.

Składnia funkcji jest zgodna z opisem poniżej:

Regexp_ podobny (źródło_string, Search_Pattern, [Match_parameter]);

Funkcja akceptuje argumenty, jak pokazano poniżej:

  1. źródło_string - parametr źródła_string definiuje ciąg, który należy przeszukać. Może to być dosłowny ciąg lub kolumna obsługiwanego typu danych. Obsługiwane typy danych obejmują char, varchar2, nchar, nvarchar2, clob itp.
  2. Search_pattern -Ten parametr służy do określenia wzorca wyrażenia regularnego do dopasowania do ciągu wejściowego.

Poniżej znajdują się zaakceptowana składnia i kombinacje wyrażenia regularnego:

Operator Opis
^ Odpowiada początkowi ciągu zdefiniowanego w parametrze meczowym.
$ Oznacza koniec łańcucha zdefiniowanego w parametrze Match_parameter.
* Dopasuj zero lub więcej zdarzeń
+ Dopasuj jedną lub więcej wydarzeń
? Dopasuj zero lub jedno zdarzenie
^b Pasuje do postaci początkowych
$ b Pasuje do postaci na koniec linii.
. C Dopasuj dowolny znak w obsługiwanym zestawie znaków, z wyjątkiem null
[]D Określa listę elementów i chce dopasować co najmniej jeden element na liście
() Umożliwia traktowanie wzoru jako pojedynczej podekspresji.
M Pasuje dokładnie.
M, Pasuje co najmniej m.
m, n Pasuje co najmniej m, ale nie więcej niż n razy.
\Nmi Ekspresja wsteczna (gdzie n jest liczbą całkowitą między 1 a 9) pasuje do n -tym subekspresji.
[… ]F Określa element kolacji
[::]G Określa klasy postaci
[==] H Określa równoważne klasy.

Aby dowiedzieć się więcej o wielojęzycznej składni i użyciu wyrażenia regularnego w bazach danych Oracle, rozważ link podany poniżej:

https: // dokumenty.wyrocznia.com/cd/b12037_01/serwer.101/B10759/AP_POSIX001.HTM#I690819

  • Match_parameter - opisuje to ciąg używany do zmiany domyślnego pasowania funkcji. Parametr Match_parameter jest podobny do funkcji Regexp_Substr ().

Poniżej pokazuje akceptowane wartości dla parametru Match_Parameter.

  1. „C” - przeprowadza wyszukiwanie wrażliwe na skrzynkę.
  2. „I” - mówi funkcji, aby przeprowadzić wyszukiwanie wrażliwe na sprawę.
  3. „N” - pozwala postaci z okresu pasować do postaci nowej linii. Domyślnie jest traktowany jako postać wieloznaczna.
  4. „M” - pozwala wyrażeniem mieć wiele linii, w których znak CareT (^) oznacza początek, a znak dolara ($) wskazuje koniec linii. Domyślnie zakłada się, że wyrażenie jest pojedynczą linią.
  5. „x” -pozwala ignorować znaki białych.

Jeśli nie zostanie dostarczony match_parameter, Oracle zakłada:

  1. Postać z okresu nie jest równa nowej postaci.
  2. Źródło_string to wejście jednoliniowe.
  3. Domyślna czułość przypadku jest zdefiniowana w parametrze NLS_SORT.

Gdy funkcja wykonuje pożądaną operację, powinien zwrócić wiersz pasujący do określonego wzoru.

Przykładowe użycie

Poniższa sekcja zawiera przykłady pokazujące wykorzystanie funkcji RegexP_ podobnej.

Załóżmy, że mamy tabelę zawierającą informacje o pracownikach, jak pokazano:

Przykład 1 - podstawowe użycie

Poniższy przykład pokazuje, jak korzystać z funkcji do wyszukiwania pasującej nazwy w tabeli pracowników.

WYBIERAĆ
imię Nazwisko
Od pracowników
Gdzie Regexp_ Like (First_name, „p”);

W takim przypadku powyższe zapytanie powinno zwrócić wszystkie pasujące nazwy, w których nazwa pierwszego_.'

Przykładem jest to, jak pokazano:

Przykład 2 - Dopasuj początek linii

W poniższym przykładzie pokazujemy, jak używać match_parameter do przeszukania początku linii oznaczonej przez znak Careta.

WYBIERAĆ
imię Nazwisko
Od pracowników
Gdzie Regexp_ Like (First_name, „^h”, „i”);

Wynikowy stół:

Przykład 3 - Dopasuj koniec linii

Podobnie możemy dopasować wzór na końcu linii za pomocą „i” jako wartości match_parameter i znaku dolara, aby oznaczyć koniec linii.

WYBIERAĆ
imię Nazwisko
Od pracowników
Gdzie Regexp_ Like (last_name, „r $”, „i”);

W takim przypadku powyższe zapytanie powinno zwrócić wartości pasujące, jak pokazano:

Zauważ, że wszystkie wartości kolumny Last_name kończą się.'

Przykład 4 - Wykonaj wyszukiwanie wrażliwe na obudowę

W poniższym przykładzie ustawiamy wartość parametru Match_Parameter na „C”, aby umożliwić dopasowanie wrażliwe na sprawę.

WYBIERAĆ
imię Nazwisko
Od pracowników
Gdzie Regexp_ Like (First_name, „Julia”, „C”);

W powyższym przykładzie, ponieważ używamy czułości obudowy z małym wzorem wyszukiwania, zapytanie nie będzie zgodne z żadnymi wartości.

Przykład 5 - Wykonaj nieczułe wyszukiwanie przypadków

Aby obejść powyższy scenariusz, możemy wykonać dopasowanie wrażliwe na przypadki, ustawiając wartość parametru MATHED na „I”.

Przykład:

WYBIERAĆ
imię Nazwisko
Od pracowników
Gdzie Regexp_ Like (First_name, „Julia”, „i”);

Wyjście:

W takim przypadku możemy zobaczyć, jak zapytanie pasuje do dwóch wartości.

Przykład 6 - Dopasuj poprzedni znak kilka razy.

Włączamy również zapytanie do dopasowania konkretnego poprzedniego znaku zdefiniowaną liczbą razy. Przykładem jest jak pokazano:

Wybierz nazwę pierwszej nazwy, Last_name
Od pracowników
Gdzie Regexp_ Like (last_name, „e 2”, „i”);

W powyższym przykładzie wyszukiwamy wszystkie pasujące wiersze, w których wartość zawiera dwa znaki „e” w kolumnie Last_name.

Powstałe wartości są jak pokazane:

Jak widać, wszystkie wartości w kolumnie Last_name zawierają dwa znaki „e”.

Wniosek

W tym poście omówiliśmy, jak korzystać z funkcji RegexP_ podobnej w bazach danych Oracle, aby wyszukać wzór wyrażenia regularnego.