SQL 解説書

文字変換

ストリング は、文字を表す一連のバイトです。

ストリングの中では、すべての文字が共通のコーディング表現によって表されます。 場合によっては、このような文字を別のコーディング表現に変換しなければならないことがあります。 この変換プロセスは文字変換 と呼ばれます。 12

文字変換は、SQL ステートメントがリモートで実行される場合に発生する可能性があります。 たとえば、次の 2 つの場合を考えてみます。

どちらの場合も、送信側システムと受信側システムとでストリングの表現が違う可能性があります。 また、同じシステムでのストリング操作でも変換が発生することがあります。

以下のリストは、文字変換の説明でよく使用される用語の定義です。

文字セット
定義済みの文字の集まり。

たとえば、いくつかのコード・ページには次の文字セットが出現します。

コード・ページ
コード・ポイントに対する一連の文字の割り当て。

たとえば、コード・ページ 850 の ASCII コード化スキーマでは、 'A' にはコード・ポイント X'41' が割り当てられ、 'B' にはコード・ポイント X'42' が割り当てられています。 1 つのコード・ページの中では、 それぞれのコード・ポイントはただ 1 つの特定の意味をもちます。 コード・ページはデータベースの 1 つの属性です。 アプリケーション・プログラムがデータベースに接続している場合、 データベース・マネージャーがそのアプリケーションのコード・ページを判別します。

コード・ポイント
文字を表す固有のビット・パターン。

コード化スキーマ
文字データを表現するために使用する規則の集まり。

たとえば、次のとおりです。

文字セットとコード・ページ

以下の例は、典型的な文字セットが、 2 つの異なるコード・ページの異なるコード・ポイントにどのようにマップされるかを示しています。



REQTEXT

コード化スキーマが同じでも多くの異なるコード・ページがあり、 同じコード・ポイントであってもコード・ページが違うなら違う文字を表す場合があります。 さらに、文字ストリングの中の 1 バイトは、 1 バイト文字セット (SBCS) の文字を表すとは限りません。 文字ストリングは、混合およびビット・データにも使用されます。 混合データ は、1 バイト文字、2 バイト文字、 または多重バイト文字の混合です。 ビット・データ (FOR BIT DATA か BLOB、 または 2 進ストリングとして定義されている列) は、どの文字セットにも関連していません。

コード・ページ属性

データベース・マネージャーは、アプリケーションがデータベースにバインドされるときに、 すべての文字ストリングのコード・ページ属性を判別します。 潜在的なコード・ページ属性には、以下のものがあります。

データベース・コード・ページ
データベース・コード・ページは、データベース構成ファイルに保管されています。 このコード・ページの値はデータベースの作成時に決定され、その後の変更は不可能です。

アプリケーション・コード・ページ
このコード・ページの下でアプリケーションが実行されます。 これはアプリケーションがバインドされたときのコード・ページと同じであるとは限りません。 (アプリケーション・プログラムのバインドおよび実行の詳細については、 アプリケーション開発の手引き を参照してください。)

コード・ページ 0
これは、FOR BIT DATA または BLOB の値を含む式から派生したストリングを表すものです。

ストリング・コード・ページ属性

文字ストリング・コード・ページ属性は次のとおりです。

スカラー操作、連結、または集合演算の結果のように、 ストリング・オブジェクトを結合する操作のコード・ページ属性は、 一連の規則を使用して判別されます。 実行時には、コード・ページ属性を使用して、 ストリングのコード・ページ変換の要件が判別されます。

文字変換の詳細は、以下を参照してください。


脚注:

12
文字変換が必要な場合は自動的に実行され、 正常に終了されたならその実行はアプリケーションからは認識されません。 そのため、あるステートメントの実行に関係するすべてのストリングが同じ方式で表現されている場合は、 変換に関する知識は必要ありません。 これには、スタンドアロン のインストールや、 同じ国内のネットワークなどが該当します。 したがって、読者の多くにとっては文字変換は無関係なものです。


[ ページのトップ | 前ページ | 次ページ | 目次 | 索引 ]