文字セット

PL/SQLで処理したりデータベースに格納する文字データはすべて、一連のバイトで表現する必要があります。単一の文字をバイトで表現したものを文字コードと呼びます。文字コードのセットを文字セットと呼びます。

すべてのOracle Databaseでは、データベース文字セットと各国語文字セットがサポートされています。また、PL/SQLでも同様に、これらの文字セットがサポートされています。このマニュアルでは、データベース文字セットおよび各国語文字セットをPL/SQLで使用する方法を説明します。

ここでのトピック

データベース文字セット

PL/SQLでは、データベース文字セットを使用して次のものを表現します。

データベース文字セットは、サポートされている各文字を特定の1バイトにマッピングするシングルバイト、またはサポートされている各文字を一連の1、2、3または4バイトにマッピングする可変幅マルチバイトのいずれかで構成されます。1つの文字コードに含まれる最大バイト数は文字セットによって異なります。

すべてのデータベース文字セットには、次の基本文字が含まれます。

  • ラテン文字(AからZおよびaからz)

  • 10進数(0から9)

  • 記号文字(表3-1を参照)

  • 空白文字(空白タブおよび改行およびキャリッジ・リターン)

基本文字のみを使用するPL/SQLソース・テキストは、すべてのデータベースで格納およびコンパイルできます。基本文字以外の文字を使用するPL/SQLソース・テキストは、その文字をサポートするデータベース文字セットが設定されたデータベースのみで格納およびコンパイルできます。

表3-1 すべてのデータベース文字セットに含まれている記号文字

記号 名前

(

左丸カッコ

)

右丸カッコ

<

左山カッコ

>

右山カッコ

+

プラス記号

-

ハイフンまたはマイナス記号

*

アスタリスク

/

スラッシュ

=

等号

,

カンマ

;

セミコロン

:

コロン

.

ピリオド

!

感嘆符

?

疑問符

'

アポストロフィ(一重引用符)

"

引用符(二重引用符)

@

アットマーク

%

パーセント記号

#

シャープ記号

$

ドル記号

_

アンダースコア

|

縦棒

関連項目:

データベース文字セットの詳細は、『Oracle Databaseグローバリゼーション・サポート・ガイド』を参照してください。

各国語文字セット

PL/SQLでは、各国語文字セットを使用して、NCHARNVARCHAR2およびNCLOBの各データ型の文字値を表現します。

関連項目:

データ・バインドされた照合について

照合(ソート順序付けとも呼ばれる)は、2つの文字列が比較およびソートされるときに、ある文字列が別の文字列と等しいか、別の文字列の前に来るか後に来るかを決定する一連のルールです。

異なる照合は、異なる話し言葉のルールに対応します。照合依存の演算は、テキストを比較し、比較ルールの制御に照合を必要とする演算です。等価演算子および組込みファンクションINSTRは、照合依存の演算の例です。

Oracle Database 12cリリース2 (12.2)では、文字データの演算に適用される照合を制御するためのアーキテクチャが追加されました。新しいアーキテクチャでは、照合は文字データの属性(データ型に類似したもの)になります。列に対して照合を宣言できるようになり、列を参照している照合依存のすべてのSQL操作によってこの照合が自動的に適用されます。データバインドされた照合の機能では、ISO/IECのSQL標準と互換性がある構文およびセマンティクスが使用されます。

PL/SQL言語は、データバインドされた照合のアーキテクチャに対して限定的なサポートを提供します。PL/SQL式で処理されるすべてのデータは、照合USING_NLS_COMPと互換性があるものと見なされます。この疑似照合は、照合依存の演算子に対して、以前のOracle Databaseリリースの場合と同じように動作するように指示します。つまり、セッション・パラメータNLS_COMPおよびNLS_SORTの値によって、使用する照合が決まります。ただし、PL/SQLに埋め込まれたSQL文、またはPL/SQLで動的に構成されたSQL文はすべて、新しいアーキテクチャを完全にサポートします。

デフォルトの照合と呼ばれる新しいプロパティが表、ビュー、マテリアライズド・ビュー、パッケージ、ストアド・プロシージャ、ストアド・ファンクション、トリガーおよび型に追加されました。ユニットのデフォルトの照合は、そのユニット内で明示的に照合の宣言を行っていないデータ・コンテナ(列、変数、パラメータ、リテラルおよび戻り値など)に対する照合を決定します。パッケージ、ストアド・プロシージャ、ストアド・ファンクション、トリガーおよび型に対するデフォルトの照合はUSING_NLS_COMPであることが必要です。

構文およびセマンティクスの詳細は、DEFAULT COLLATION句を参照してください。

デフォルトの照合がUSING_NLS_COMP以外のスキーマでPL/SQLユニットを容易に作成できるよう、次の文の構文およびセマンティクスを使用して、オブジェクトのデフォルトの照合をUSING_NLS_COMPとして明示的に宣言できます。

関連項目: