ホームページ > データベース > mysql チュートリアル > Oracle データベースで大文字と小文字を区別しない検索を実行するにはどうすればよいですか?

Oracle データベースで大文字と小文字を区別しない検索を実行するにはどうすればよいですか?

DDD
リリース: 2025-01-17 11:47:12
オリジナル
582 人が閲覧しました

How Can I Perform Case-Insensitive Searches in Oracle Databases?

Oracle データベースの大文字と小文字を区別しない検索方法

Oracle Database のデフォルトの比較演算子 (LIKE など) では、大文字と小文字が区別されます。ただし、全文インデックスを使用しなくても、大文字と小文字を区別しない検索は可能です。

1. 大文字と小文字の変換方法:

UPPER() または LOWER() 関数を使用して、すべてのデータを同じ大文字と小文字に変換します。

<code class="language-sql">SELECT * FROM my_table WHERE upper(column_1) = upper('my_string');</code>
ログイン後にコピー

または

<code class="language-sql">SELECT * FROM my_table WHERE lower(column_1) = lower('my_string');</code>
ログイン後にコピー

効率を高めるために、大文字と小文字を区別しない検索用の関数ベースのインデックスを忘れずに作成してください。

2. 正規表現方法 (Oracle 10g 以降):

REGEXP_LIKE() 関数を使用し、大文字と小文字を区別しないように一致引数「i」を指定します。

<code class="language-sql">SELECT * FROM my_table WHERE regexp_like(column_1, '^my_string$', 'i');</code>
ログイン後にコピー

または

<code class="language-sql">SELECT * FROM my_table WHERE regexp_like(column_1, 'my_string', 'i');</code>
ログイン後にコピー

正規表現では特殊文字の解釈が異なる場合があることに注意することが重要です。

3. セッションレベルの変更:

セッション設定の NLS_SORT および NLS_COMP パラメータを変更します:

<code class="language-sql">ALTER SESSION SET nls_sort=BINARY_CI;
ALTER SESSION SET nls_comp=LINGUISTIC;</code>
ログイン後にコピー

これにより、そのセッション内のすべてのクエリで大文字と小文字が区別されなくなります。パフォーマンスを向上させるために言語インデックスを作成することをお勧めします。

概要:

どの方法を選択するかは、特定のニーズによって異なります。大文字と小文字を区別しない検索を使用する場合は、パフォーマンスを向上させるために、インデックスを適切に作成することを忘れないでください。

以上がOracle データベースで大文字と小文字を区別しない検索を実行するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート