コード・ページ値の導出

アプリケーションのコード・ページ は、 データベース接続時のアクティブ環境から導出されます。

DB2CODEPAGE レジストリー変数が設定されている場合、その値はアプリケーション・コード・ページとして扱われます。 ただし、 Db2® がオペレーティング・システムから適切なコード・ページ値を決定するため、 DB2CODEPAGE レジストリー変数を設定する必要はありません。 DB2CODEPAGE レジストリー変数を誤った値に設定すると、予測不能な結果が生じる可能性があります。

データベースの作成時には、データベース・コード・ページ を明示的に指定できます。 データベース・コード・ページを指定しない場合、データベースはデフォルトでは Unicode を使用します。

さまざまなオペレーティング環境においてアクティブ環境 が決定される方法を以下に示します。

Linux® および UNIX オペレーティング・システム
Linux および UNIX オペレーティング・システムでは、アクティブ環境はロケール設定から決定されます。これには、言語、テリトリー、およびコード・セットに関する情報が含まれます。
Windows オペレーティング・システム
すべての Windows オペレーティング・システムで、 DB2CODEPAGE 環境変数が設定されていない場合、コード・ページは 「コントロールパネル」「地域オプション」 メニューの ANSI コード・ページ設定から派生します。

通常、Windows は、前述の ANSI コード・ページの代わりに Unicode コード・ページを報告しません。 したがって、Windows アプリケーションは通常、Unicode クライアントとして動作しません。 この動作をオーバーライドするために、 DB2CODEPAGE 変数を Unicode コード・ページ (1208) に設定できます。これにより、アプリケーションは強制的に Unicode クライアントとして動作します。

注:
Windows には、コード・セットとして GB18030 を報告するロケール設定がありません。 Db2 V9.7 フィックスパック 1 以降、 Db2 クライアントが Windows ワークステーションを GB18030 コード・セット (コード・ページ 1392) を使用するものとして扱うようにするには、以下のタスクを実行します。
  • Microsoft から入手可能な GB18030 サポート・パッケージをインストールします。
  • 「地域と言語のオプション」で、「Unicode 対応でないプログラムの言語」設定を「中国語 (中国)」に設定します。
  • DB2CODEPAGE レジストリー変数を 1392に設定します。

セクションのコード・ページ は、 SQL ステートメントで使用される表から導出されます。 表が、暗黙的または明示的に CCSID ASCII で定義される場合、 セクションのコード・ページは、データベースのコード・ページと同じです。 表が、CCSID UNICODE で定義される場合、セクションのコード・ページは、Unicode コード・ページです。

プリコンパイルおよびバインド用のアクティブ・コード・ページ

プリコンパイル/バインド時には、 プリコンパイラーが実行中のアプリケーションとなります。 プリコンパイルの要求に先立つデータベース接続の際のアクティブ・コード・ページは、プリコンパイル済みステートメント、および SQLCA 中に戻される文字データに適用されます。

アプリケーション実行用のアクティブ・コード・ページ

実行時は、データベース接続時のユーザー・アプリケーションのアクティブ・コード・ページが、その接続の続いている間、有効となります。 すべてのデータはこのコード・ページに基づいて解釈されます。 これには、動的 SQL ステートメント、ユーザー入力データ、ユーザー出力データ、 および SQLCA 中の文字フィールドが含まれます。