ここで役立つのは、LIKE ANY
です。 PostgreSQLで利用可能な述語
SELECT *
FROM tbl
WHERE my_col LIKE ANY (ARRAY['%val1%', '%val2%', '%val3%', ...])
残念ながら、その構文はOracleでは使用できません。 OR
を使用して、定量化された比較述語を拡張できます。 ただし、:
SELECT *
FROM tbl
WHERE my_col LIKE '%val1%' OR my_col LIKE '%val2%' OR my_col LIKE '%val3%', ...
または、EXISTS
を使用して半結合を作成します 述語と補助配列データ構造(詳細については、この質問を参照してください):
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
)
真の全文検索については、Oracle Textを参照してください:http://www.oracle.com/technetwork/database/enterprise-edition/index-098492.html