[解決済み】Oracleで大文字小文字を区別しない検索を行う
2022-04-01 01:19:20
質問
のデフォルトの動作は
LIKE
といった比較演算子があります。
=
などは大文字と小文字を区別します。
大文字と小文字を区別しないようにすることは可能ですか?
どのように解決するのですか?
10gR2 以降、Oracle では、文字列比較の動作を細かく設定するために
NLS_COMP
と
NLS_SORT
セッションのパラメータを指定します。
SQL> SET HEADING OFF
SQL> SELECT *
2 FROM NLS_SESSION_PARAMETERS
3 WHERE PARAMETER IN ('NLS_COMP', 'NLS_SORT');
NLS_SORT
BINARY
NLS_COMP
BINARY
SQL>
SQL> SELECT CASE WHEN 'abc'='ABC' THEN 1 ELSE 0 END AS GOT_MATCH
2 FROM DUAL;
0
SQL>
SQL> ALTER SESSION SET NLS_COMP=LINGUISTIC;
Session altered.
SQL> ALTER SESSION SET NLS_SORT=BINARY_CI;
Session altered.
SQL>
SQL> SELECT *
2 FROM NLS_SESSION_PARAMETERS
3 WHERE PARAMETER IN ('NLS_COMP', 'NLS_SORT');
NLS_SORT
BINARY_CI
NLS_COMP
LINGUISTIC
SQL>
SQL> SELECT CASE WHEN 'abc'='ABC' THEN 1 ELSE 0 END AS GOT_MATCH
2 FROM DUAL;
1
また、大文字と小文字を区別しないインデックスを作成することも可能です。
create index
nlsci1_gen_person
on
MY_PERSON
(NLSSORT
(PERSON_LAST_NAME, 'NLS_SORT=BINARY_CI')
)
;
この情報は、以下のサイトから引用しています。
Oracleの大文字・小文字を区別しない検索
. 記事には、次のようなことが書かれています。
REGEXP_LIKE
が、古き良き時代のものを使っているようです。
=
もあります。
10gR2より古いバージョンでは、実際に行うことができず、通常のアプローチでは、必要ない場合は
アクセントインセンシティブ
を検索することです。
UPPER()
は、カラムと検索式の両方です。
関連
-
[解決済み] 3を挿入すると「ORA-01438: この列で許容される指定精度より大きい値」と表示される。
-
[解決済み] SQL ServerでSELECTからUPDATEする方法とは?
-
[解決済み] Vimで大文字小文字を区別しない検索をする方法
-
[解決済み] Oracleの全テーブルのリストを取得しますか?
-
[解決済み] 大文字と小文字を区別しない文字列比較を行うにはどうすればよいですか?
-
[解決済み] 大文字・小文字を区別せず含む
-
[解決済み] LIKEワイルドカードを使用してカラム内を検索(大文字・小文字を区別しない)するにはどうすればよいですか?
-
[解決済み] Sqlite3の文字列比較で大文字・小文字を区別しない設定にするには?
-
[解決済み】大文字・小文字を区別しない「Contains(string)
-
[解決済み】re.compileを使わずに大文字小文字を区別しない正規表現?
最新
-
nginxです。[emerg] 0.0.0.0:80 への bind() に失敗しました (98: アドレスは既に使用中です)
-
htmlページでギリシャ文字を使うには
-
ピュアhtml+cssでの要素読み込み効果
-
純粋なhtml + cssで五輪を実現するサンプルコード
-
ナビゲーションバー・ドロップダウンメニューのHTML+CSSサンプルコード
-
タイピング効果を実現するピュアhtml+css
-
htmlの選択ボックスのプレースホルダー作成に関する質問
-
html css3 伸縮しない 画像表示効果
-
トップナビゲーションバーメニュー作成用HTML+CSS
-
html+css 実装 サイバーパンク風ボタン
おすすめ
-
[解決済み】''付近の構文が正しくない
-
[解決済み] テスト
-
[解決済み] INSERT ステートメントが FOREIGN KEY 制約と競合する - SQL Server
-
[解決済み] SQLクエリ「00904. 00000 - "%s: 無効な識別子".
-
[解決済み] ORA-12801: 並列クエリサーバー P004 および ORA-01555 でシグナルされたエラー: スナップショットが古すぎる。
-
[解決済み] ORA-01735: 無効な ALTER TABLE オプション - ヒキガエル
-
[解決済み] SQLクエリで2つの列から値を引き算する
-
[解決済み] FROM のサブクエリにはエイリアスが必要です。
-
[解決済み] マルチパート識別子をバインドできなかった
-
[解決済み] SQLサーバーで文字列をsmalldatetimeデータ型に変換する際、変換に失敗しました(静的値を除く)。