SQL 解説書

文字ストリング割り当ての変換規則

列またはホスト変数に割り当てられる文字ストリングまたは漢字ストリングは、 必要なら、まず割り当て先のコード・ページに変換されます。 文字変換が必要になるのは、次の条件がすべて真の場合だけです。

文字ストリング割り当てについての MBCS の考慮事項

1 バイト文字とマルチバイト文字の両方を入れることのできる文字ストリングを割り当てる場合には、 いくつかの考慮事項があります。 このような考慮事項は、FOR BIT DATA として定義されているものを含めて、 すべての文字ストリングに適用されます。

漢字ストリング割り当てについての DBCS の考慮事項

漢字ストリングの割り当ては、文字ストリングの場合と同じように処理されます。 漢字ストリング・データ・タイプが互換であるのは他の漢字ストリング・データ・タイプとだけであり、 数値、文字ストリング、日付 / 時刻データ・タイプとは互換ではありません。

漢字ストリング値が漢字ストリング列に割り当てられる場合、 その値の長さがその列の長さを超えてはなりません。

漢字ストリング値 ('ソース'・ストリング) を固定長漢字ストリング・データ・タイプ ('割り当て先'、 列またはホスト変数) に割り当てる場合に、 ソース・ストリングの長さが割り当て先より短いなら、 割り当て先には、ソース・ストリングのコピーの右端に、 値の長さが割り当て先の長さに等しくなるために必要な数の 2 バイト・ブランク文字を埋め込んだものが入れられます。

漢字ストリング値を漢字ストリングのホスト変数に割り当てる場合に、 ソース・ストリングの長さがホスト変数の長さよりも長いなら、 ホスト変数には、ソース・ストリングのコピーの右端から、 値の長さがホスト変数の長さと等しくなるために必要な数の 2 バイト・ブランク文字を切り捨てたものが入れられます。 (このシナリオでは、切り捨てにおいて 2 バイト文字の二分化を考慮する必要はありません。 二分化が発生するとすれば、 それはソース値または割り当て先のホスト変数のどちらかで漢字ストリング・データ・タイプの定義に異常があるということです。) SQLCA の警告フラグ SQLWARN1 が 'W' に設定されます。 標識変数が指定されていれば、 標識変数にはソース・ストリングの元の長さ (2 バイト文字の文字数) が入れられます。 しかし、DBCLOB の場合は、標識変数に元の長さは入れられません。

C の NUL 終止符ホスト変数 (wchar_t を使って宣言されたもの) の検索割り当ては、 PREP または BIND コマンドに指定されたオプションに基づいて処理されます。 詳細については、 アプリケーション開発の手引き の C および C++ のプログラミングに関する項を参照してください。


脚注:

16
DRDA アプリケーション・サーバーとして動作する場合、 FOR BIT DATA 列との割り当て、比較、もしくは結合が行われる場合であっても、 入力されたホスト変数はアプリケーション・サーバーのコード・ページに変換されます。 SQLDA が入力ホスト変数を FOR BIT DATA として識別するよう変更されている場合は、 変換は行われません。


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