Wat hier handig zou zijn, is een LIKE ANY
predikaat zoals beschikbaar in PostgreSQL
SELECT *
FROM tbl
WHERE my_col LIKE ANY (ARRAY['%val1%', '%val2%', '%val3%', ...])
Helaas is die syntaxis niet beschikbaar in Oracle. U kunt het gekwantificeerde vergelijkingspredikaat uitbreiden met OR
, echter:
SELECT *
FROM tbl
WHERE my_col LIKE '%val1%' OR my_col LIKE '%val2%' OR my_col LIKE '%val3%', ...
Of maak een semi-join aan met een EXISTS
predikaat en een hulparray datastructuur (zie deze vraag voor details):
SELECT *
FROM tbl t
WHERE EXISTS (
SELECT 1
-- Alternatively, store those values in a temp table:
FROM TABLE (sys.ora_mining_varchar2_nt('%val1%', '%val2%', '%val3%'/*, ...*/))
WHERE t.my_col LIKE column_value
)
Voor echt zoeken in volledige tekst kunt u Oracle Text bekijken:http://www.oracle.com/technetwork/database/enterprise-edition/index-098492.html