2.243 NLS_SORT
NLS_SORT
には、様々なSQL演算子およびSQL句で文字の値を比較する際の照合順序を指定します。
特性 | 説明 |
---|---|
パラメータ・タイプ |
文字列 |
構文 |
|
デフォルト値 |
|
変更可能 |
|
PDBで変更可能 |
はい |
値の範囲 |
|
基本 |
いいえ |
たとえば、NLS_SORT
には、ORDER BY
、GROUP BY
、比較条件(=
、<>
、<=
、>=
)、IN
、BETWEEN
、LIKE
、MIN/MAX
、GREATEST/LEAST
、INSTR
などのSQL演算子および句における文字値比較の照合順番を指定します。
-
この値が
BINARY
の場合、比較は、比較対象である文字値のバイナリ・エンコードのバイト値に直接基づきます。順番は、比較対象の値の文字セットによって異なり、文字セットはデータベース文字セット(VARCHAR2
、CHAR
、LONG
およびCLOB
)または各国語文字セット(NVARCHAR2
、NCHAR
およびNCLOB
)のいずれかとなります。 -
この値が名前付き言語ソートの場合、比較はこのソートによって定義されます。言語ソートでは、1つ以上の自然言語について、使用する人が期待する順番を実現するために、様々なルールが使用されます。これは、通常、それらの言語の辞書や電話帳で使用される順番と同じです。
NLS_SORT
パラメータに従う正確な演算子および問合せ句は、NLS_COMP
パラメータの値によって異なります。演算子または句がNLS_SORT
の値に従っていない場合、NLS_COMP
に定められたとおり、照合にはBINARY
が使用されます。
BINARY
比較は、言語比較よりも高速で使用するリソースも少なくなりますが、自然言語のテキストについてはユーザーが期待する順番になりません。
NLS_SORT
の値は、問合せの実行計画に影響します。標準の索引は、言語的な順序でソートする値のソースとして使用できないため、通常は、索引レンジ・スキャンではなく、明示的なソート操作を実行する必要があります。NLSSORT
関数にファンクション索引を定義すると、言語的な順序で値をソートして、索引レンジ・スキャンを実行計画に再導入できます。
ノート:
この初期化パラメータNLS_SORT
の値は、このパラメータのセッション値の初期化に使用され、SQL問合せの処理で参照される実際の値です。クライアントがOracle JDBCドライバを使用しているか、クライアントがOCIベースでありNLS_LANG
のクライアント設定(環境変数)が定義されている場合、この初期値はクライアント側の値でオーバーライドされます。そのため、初期化パラメータ値は、通常、無視されます。
関連項目:
-
このパラメータと指定可能な値の最新リストの詳細は、『Oracle Databaseグローバリゼーション・サポート・ガイド』を参照してください。