Nützlich wäre hier ein LIKE ANY
Prädikat, wie es in PostgreSQL verfügbar ist
SELECT *
FROM tbl
WHERE my_col LIKE ANY (ARRAY['%val1%', '%val2%', '%val3%', ...])
Leider ist diese Syntax in Oracle nicht verfügbar. Sie können das quantifizierte Vergleichsprädikat mit OR
erweitern , jedoch:
SELECT *
FROM tbl
WHERE my_col LIKE '%val1%' OR my_col LIKE '%val2%' OR my_col LIKE '%val3%', ...
Oder erstellen Sie alternativ einen Semi-Join mit einem EXISTS
Prädikat und eine zusätzliche Array-Datenstruktur (siehe diese Frage für 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
)
Für eine echte Volltextsuche sollten Sie sich Oracle Text ansehen:http://www.oracle.com/technetwork/database/enterprise-edition/index-098492.html