割り当てには次の 2 つのタイプがあります。
ストリング割り当てに関する規則は、割り当てのタイプによって異なります。
基本的な規則は、 列または関数パラメーターに割り当てられるストリングの長さが、 列または関数パラメーターの長さ属性を超えてはならないということです。 ストリングの長さが列または関数パラメーターの長さ属性を超えた場合は、 以下の処置が取られます。
ストリングが固定長列に割り当てられ、 ストリングの長さが割り当て先の長さ属性より短いときは、 そのストリングの右に必要な数のブランクが埋め込まれます。 埋め込み文字は、FOR BIT DATA 属性で定義されている列の場合も含めて、常にブランクです。
ホスト変数に割り当てられるストリングの長さは、 ホスト変数の長さ属性より長くてもかまいません。
ストリングがホスト変数に割り当てられるときに、 ストリングの長さが変数の長さ属性より長ければ、 ストリングの右側から文字 (またはバイト) が必要な数だけ切り捨てられます。 この場合には警告 (SQLSTATE 01004) が戻され、 SQLCA の SQLWARN1 フィールドに値 'W' が割り当てられます。
さらに、標識変数があってその値のソースが LOB でない場合は、 その標識変数はストリングの元の長さに設定されます。
文字ストリングが固定長変数に割り当てられる場合に、 ストリングの長さが割り当て先の長さ属性よりも短いなら、 ストリングの右端に必要な数のブランクが埋め込まれます。 埋め込み文字は、FOR BIT DATA 属性で定義されているストリングの場合も含めて、 常にブランクです。
C の NUL 終止符ホスト変数の検索割り当ては、 PREP または BIND コマンドに指定されたオプションに基づいて処理されます。 詳細については、 アプリケーション開発の手引き の C および C++ のプログラミングに関する項を参照してください。