13.19 DEFAULT COLLATION句
照合(ソート順序付けとも呼ばれる)は、2つの文字列が比較およびソートされるときに、ある文字列が別の文字列と等しいか、別の文字列の前に来るか後に来るかを決定します。Oracle Databaseの照合は、異なる言語で使用される、テキストのソートのルールに従って、文字列を並べ替えます。
DEFAULT
COLLATION
句は、次のSQL文に指定できます。
ここでのトピック
前提条件
COMPATIBLE
初期化パラメータは少なくとも12.2.0に設定する必要があり、これらのSQL文で照合の宣言を許可するためにMAX_STRING_SIZE
はEXTENDED
に設定する必要があります。
構文
default_collation_clause ::=
collation_option ::=
セマンティクス
default_collation_clause
default_collation_clauseは、パッケージ仕様部、スタンドアロン型仕様部およびスタンドアロン・サブプログラムで記述できます。
collation_option
プロシージャ、ファンクション、パッケージ、型またはトリガーのデフォルトの照合はUSING_NLS_COMP
であることが必要です。default_collation_clauseは、PL/SQLユニットのデフォルトの照合をUSING_NLS_COMP
として明示的に宣言します。この句がない場合、ユニットのデフォルトの照合は有効なスキーマのデフォルトの照合から継承されます。有効なスキーマのデフォルトの照合がUSING_NLS_COMP
でない場合、ユニットは無効です。
-
セッション・パラメータ
DEFAULT_COLLATION
が設定されている場合、有効なスキーマのデフォルトの照合はこのパラメータの値です。パラメータの値は、SYS_CONTEXT('USERENV', 'SESSION_DEFAULT_COLLATION')
を問い合せることでチェックできます。DEFAULT_COLLATION
が設定されていない場合、このファンクションはNULL
を戻します。パラメータDEFAULT_COLLATION
の値は、次の文を使用して設定できます:ALTER SESSION SET DEFAULT_COLLATION
= collation_option; -
セッション・パラメータ
DEFAULT_COLLATION
が設定されていない場合、有効なスキーマのデフォルトの照合は、PL/SQLユニットの作成先となるスキーマの宣言済のデフォルトの照合です。スキーマのデフォルトの照合は、静的データ・ディクショナリ*_USERSビューにあります。これは、DDL文CREATE USER
およびALTER USER
を使用して設定できます。
セッション・パラメータDEFAULT_COLLATION
は、次の文を使用して未設定にできます: ALTER SESSION SET DEFAULT_COLLATION = NONE;
パッケージ本体および型本体は、対応する仕様部のデフォルトの照合を使用します。プロシージャ、ファンクションおよびメソッド(パラメータおよび戻り値を含む)の文字データ・コンテナおよび属性はすべて、そのデータバインドされた照合が疑似照合USING_NLS_COMP
であるかのように動作します。
DEFAULT COLLATION
の制限
ネストしたサブプログラムもしくはパッケージ・サブプログラムまたは型のメソッドに対して指定することはできません。
コンパイル・セマンティクス
結果的にデフォルトのオブジェクト照合がUSING_NLS_COMP
と異なる場合、データベース・オブジェクトはコンパイル・エラーのため無効として作成されます。
REUSE SETTINGS
句を指定したALTER COMPILE
文がPL/SQLユニットに対して発行されると、コンパイルするデータベース・オブジェクトについて、格納されたデフォルトの照合は変更されません。
REUSE SETTINGS
句なしでALTER COMPILE
文が発行されると、コンパイルするデータベース・オブジェクトについて、格納されたデフォルトの照合は破棄され、PL/SQLユニットにDEFAULT COLLATION
句が含まれていないかぎり、文の実行時のオブジェクト所有者の有効なスキーマのデフォルトの照合がそのオブジェクトのデフォルトの照合として格納されます。結果的にデフォルトの照合がUSING_NLS_COMP
でない場合、コンパイル・エラーが発生します。
パッケージ本体または型本体のALTER COMPILE
文は、対応する仕様部の格納された照合を参照します。
関連トピック
他の章:
その他のドキュメント:
-
PL/SQLユニットに対するデータバインドされた照合の指定の詳細は、Oracle Databaseグローバリゼーション・サポート・ガイドを参照してください
-
有効なスキーマのデフォルトの照合の詳細は、Oracle Databaseグローバリゼーション・サポート・ガイドを参照してください