[Oracle初心者運用メモ]大文字/小文字、全角/半角区別なしであいまい検索

≪Oracle10gR2からの大文字/小文字、全角/半角区別なしであいまい検索≫

大文字/小文字区別なしの検索は、大文字/小文字変換関数を使用することにより
DBの値,検索文字どちらも大文字(又は小文字)に
変換して検索することで区別なし検索ができます。

全角/半角区別なしの検索は、
Oracle10gR2から
UTL_I18N.TRANSLITERATEという日本語のひらがなとカタカナを変換する機能が提供され、
この機能を使用することでDBの値,検索文字どちらも全角(又は半角)に
変換して検索することで区別なし検索ができます。

 

下記SQLは、大文字/小文字、全角/半角区別なしで部分一致検索です。

select name
from 製品マスタ
where
UTL_I18N.TRANSLITERATE(UPPER(TO_MULTI_BYTE(name)),'kana_fwkatakana')
like '%' || UTL_I18N.TRANSLITERATE(UPPER(TO_MULTI_BYTE( 検索文字 )),'kana_fwkatakana') || '%'

※'kana_fwkatakana'はすべてのタイプの仮名文字を全角カタカナに変換します。