DESCRIBE または PREPARE INTO ステートメントの場合、 データベース・マネージャーは、常に SQLD を結果セットの列の数に設定します。
SQLDA の SQLVAR は、以下の場合に設定されます。
最初の SQLD SQLVAR 項目が設定され、SQLDOUBLED はブランクに設定されます。
2 倍の数の SQLD SQLVAR 項目が設定され、SQLDOUBLED は '2' に設定されます。
最初の SQLD SQLVAR 項目が設定され、SQLDOUBLED はブランクに設定されます。 SQLWARN バインド・オプションが YES の場合は、 警告 SQLCODE +237 (SQLSTATE 01594) が出されます。
SQLDA の SQLVAR は、 以下の場合には設定されません (さらに多くのスペースの割り振りと別の DESCRIBE が必要)。
SQLVAR 項目は設定されず、SQLDOUBLED はブランクに設定されます。 SQLWARN バインド・オプションが YES の場合は、 警告 SQLCODE +236 (SQLSTATE 01005) が出されます。
DESCRIBE が正常に実行される場合には、SQLD 個の SQLVAR が割り振られます。
SQLVAR 項目は設定されず、SQLDOUBLED はブランクに設定されます。 SQLWARN バインド・オプションが YES の場合は、 警告 SQLCODE +239 (SQLSTATE 01005) が出されます。
特殊タイプ名および参照タイプのターゲット・タイプを含む DESCRIBE が正常に実行されると、 2*SQLD 個の SQLVAR が割り振られます。
SQLVAR 項目は設定されず、SQLDOUBLED はブランクに設定されます。 (SQLWARN バインド・オプションの設定に関係なく) 警告 SQLCODE +238 (SQLSTATE 01005) が出されます。
DESCRIBE が正常に実行される場合には、2*SQLD 個の SQLVAR が割り振られます。
上記リストでの「LOB 列」には、 ソース・タイプが LOB タイプである特殊タイプも含まれます。
DESCRIBE (または PREPARE INTO) から警告 SQLCODE +236、+237、+239 を戻すかどうかを制御するには、 BIND または PREP コマンドの SQLWARN オプションを使用します。 使用するアプリケーション・コードでは、 これらの SQLCODE がいつ戻されてもよいようにしておいてください。 選択リストに LOB または構造タイプの列が含まれていて、 SQLDA の中の SQLVAR が不足している場合には、常に警告 SQLCODE +238 が戻されます。 これは、 結果セット内に LOB または構造タイプの列があるために SQLVAR 数を 2 倍にする必要があることをアプリケーションに認識させる唯一の方法です。
構造タイプの列を記述しようとしているものの、 FROM SQL 変換が定義されていない場合 (CURRENT DEFAULT TRANSFORM GROUP 特殊レジスターを使用した TRANSFORM GROUP の指定が行われていない (SQLSTATE 42741) か、 またはその名前グループが FROM SQL 変換関数を定義していない (SQLSTATE 42744) ため)、 DESCRIBE はエラーを戻します。 このエラーは、構造タイプの列がある表の DESCRIBE で戻されるエラーと同じです。
関連情報: