SQL wyszukiwanie listy slow w tekscie

0

Witam,
musze stworzyc zapytanie w PL/SQL wyszukujace konkretne slowa z listy (jest ich ok 143 tys) w kolumnie z tesktem. Kazde z tych slow ma dokladnie 5 liter. Problem polega na tym, ze za podanym slowem moze byc kropka, lub dane slowo moze byc czescia innych dluzyszych slow w teskcie, dlatego zapytanie wyrzuca mi tez inne wyniki

select distinct
(ap.id),
sp.text
from
Tabela1 ap,
Tabela2 ra,
Tabela3 sp
where
ap.id = ra.id
and ra.id = sp.id
and ap.active = 1
and (sp.text LIKE '%ROWER%'
or sp.text LIKE '%STROJ%'
or sp.text LIKE '%KARTY%'
itd ....)

W wynikach wyrzuca mi wiec np slowa ROWEROWY, USTROJ. Chodzi o to, zeby ograniczalo sie konkretnie to wyszukiwanych slow

1

Tu bym użył regexp_like:

select * 
from sp 
where REGEXP_LIKE(sp."text", '(^|[^a-z])(rower|stroj)($|[^a-z])', 'i' )

https://dbfiddle.uk/?rdbms=oracle_11.2&fiddle=91d8e1c7a7444ddf3a71f4a4a2058a6b

0

niestety, problem w tym, ze te piecioliterowe "slowa, zawieraja tez liczby np. adb23

1

No to trzeba dopasować wyrażenie: (^|[^a-z0-9])(rower|stroj)($|[^a-z0-9])

1 użytkowników online, w tym zalogowanych: 0, gości: 1