≪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'はすべてのタイプの仮名文字を全角カタカナに変換します。