Problem z wyrażeniami regularnymi sql oracle |
Problem z wyrażeniami regularnymi sql oracle |
1.10.2014, 19:24:17
Post
#1
|
|
Grupa: Zarejestrowani Postów: 2 Pomógł: 0 Dołączył: 1.10.2014 Ostrzeżenie: (0%) |
Cześć, piszę gdyż natknąłem się na dziwny problem, z którym nie mogę sobie poradzić. Otóż napisałem kod (w skrócie napiszę tylko problematyczny fragment) :
SELECT * FROM tabela a WHERE REGEXP_LIKE ( UPPER ( TRANSLATE ( a.nazwa1, 'ĄąĆćĘꣳŃńÓ󌜯żŹź-' ,'AaCcEeLlNnOoSsZzZz ') ), UPPER ( TRANSLATE ( SUBSTR ( a.nazwa2, 0, INSTR ( a.nazwa2, ' ') -1 ), 'ĄąĆćĘꣳŃńÓ󌜯żŹź-' , 'AaCcEeLlNnOoSsZzZz ') ) ) ) Ogólnie mój kod (cały, złożony z tych powyższych składni) ma za zadanie sprawdzenie, czy w nazwa1 znajduje się pierwsze słowo z nazwa2 i drugie słowo z nazwa2. Atrybuty nazwa1 i nazwa2 są napisami składającymi się z różnych znaków. Dla lepszego przeszukiwania pozbywam się polskich znaków oraz sprowadzam znaki do jednej wielkości. Wyskakuje mi błąd "ORA-12725 niezrównoważone nawiasy w wyrażeniu regularnym". Sprawdziłem wielokrotnie, z nawiasami wszystko w porządku. Dodam, że dla małej bazy zapytanie ładnie śmiga, problem pojawia się jak przepuszczam ją przez znacznie większą. Poza tym zapytanie wypisuje dane, a jak chce wypisać więcej lub dorzucam DISTINCT'a po chwili wypisywania wywala błąd. Z tego względu podejrzewam, że jakaś krotka psuje zapytanie. Czy ktoś wie jak rozwiązać mój problem? Niestety mi już pomysły się skończyły i nie wiem co jest źle ... |
|
|
2.10.2014, 08:58:36
Post
#2
|
|
Grupa: Zarejestrowani Postów: 6 761 Pomógł: 1822 Dołączył: 11.03.2014 Ostrzeżenie: (0%) |
Drugi argument dla REGEXP_LIKE to wyrażenie regularne, u Ciebie tak nie jest.
-------------------- |
|
|
Wersja Lo-Fi | Aktualny czas: 29.03.2024 - 02:57 |