文字ストリングの混合データ

混合文字データおよびグラフィック・データは、Unicode には常に許可されますが、EBCDIC と ASCII の場合は、Db2 の特定のインストール済み環境で混合データを使用できるかどうかを判別します。

インストール・パネル DSNTIPF のフィールド MIXED DATA の値は 、ASCII または EBCDIC 文字ストリングで YES または NO にすることができます。 値 YES は、文字ストリング内に SBCS 文字と DBCS 文字が混在できることを示します。 値 NO は混在できないことを示します。 文字データとグラフィック・データは、Unicode の場合は常に混在できます。 つまり、MIXED DATA フィールドは Unicode データには影響を及ぼしません。

静的なSQLステートメントの場合、 Db2 コプロセッサのCCSID処理オプションまたは派生CCSIDの値によって、ASCIIまたはEBCDIC文字列に混合データを含めることができるかが決まります。 混合 CCSID を使用すると、混合ストリングが許可されます。 1 バイト CCSID を使用すると、混合ストリングは許可されません。

動的 SQL ステートメントの場合、動的ステートメント・テキストを UTF-8 に変換するために選択された CCSID によって、ASCII または EBCDIC の文字ストリングが混合データを含むことができるかどうかが決まります。 動的ステートメントの CCSID は、PREPARE ステートメントのホスト変数の SQLDA オーバーライド (ある場合)、CURRENT ENCODING SCHEME 特殊レジスターの値、および ENCODING バインド・オプションによって決まります。

MIXED DATA の値は、SQL 文字ストリング定数 の解析、LIKE 述部の実行、および切り捨てが必要な場合のホスト変数への 文字ストリング割り当てに影響を与えます。 また、 式の連結演算子で説明されているように、連結にも影響します。 ローカルで実行されるステートメントに適用される値は、 Db2 、他のサーバーで実行されるステートメントにも適用されます。 ただし、LIKE 述部は例外です。この場合に該当する MIXED DATA の 値は、常にステートメントのサーバーでの値になります。

MIXED DATAの値は、ローカル Db2 のシステムCCSIDの選択や、文字列カラムのデータサブタイプの選択にも影響します。 この値が YES の場合、ASCII および EBCDIC デー タ (SBCS、DBCS、および MIXED) には複数の CCSID が使用可能です。 ASCII CCSID または EBCDIC CCSID フィールドに指定する CCSID は、MIXED CCSID です。 この場合、 Db2 は、指定されたインストールパネルDSNTIPFのDBCS CCSIDから、SBCSおよびMIXEDのCCSIDを導出します。 さらに、文字列は、使用可能なデータ・サブタイプ (BIT、SBCS、または MIXED) のいずれかを持つことができます。

一方、MIXED DATA が NO の場合、ASCII または EBCDIC のシステム CCSID は 、SBCS データ用のものだけです。 したがって、文字列のデータ・サブタイプとすることができるの は、BIT および SBCS だけです。