SQLTYPE と SQLLEN

以下の表は、SQLDA の SQLTYPE および SQLLEN フィールドに入る値を示したものです。 PREPARE および DESCRIBE で使用した場合に、SQLTYPE の値が偶数ならば、その列には NULL が許されないことを示します。 また、SQLTYPE の値が奇数ならば、その列に NULL が許されることを示します。

注: DESCRIBE または PREPARE ステートメントで使用される SQLDA において、1 つのオペランドがNULL 可能であるか、または式の結果が -2 のマッピング・エラー NULL 値になる場合、 その式に奇数値が戻されます。

FETCH、OPEN、CALL、および EXECUTE で使用した場合、SQLTYPE の値が偶数ならば、標識変数が指定されていないことを意味し、奇数ならば、SQLIND に標識変数のアドレスが入っていることを意味します。

表 1. PREPARE、DESCRIBE、FETCH、OPEN、CALL、または EXECUTE の場合の SQLTYPE および SQLLEN の値
SQLTYPE PREPARE および DESCRIBE の場合 FETCH、OPEN、CALL、および EXECUTE の場合
COLUMN DATA TYPE SQLLEN HOST VARIABLE DATA TYPE SQLLEN
384/385 日付 3 10 日付の固定長文字ストリング表現 ホスト変数の長さ属性
388/389 時刻 8 時刻の固定長文字ストリング表現 ホスト変数の長さ属性
392/393 タイム・スタンプ
TIMESTAMP(0)
の場合 19
それ以外で
TIMESTAMP(p) の
場合 20+p
タイム・スタンプの固定長文字ストリング表現 ホスト変数の長さ属性
396/397 データ・リンク 列の長さ属性 データ・リンク ホスト変数の長さ属性
400/401 該当しない 該当しない NUL で終了するグラフィック・ストリング ホスト変数の長さ属性
404/405 BLOB 0 2 BLOB 使用されません。 2
408/409 CLOB 0 2 CLOB 使用されません。 2
412/413 DBCLOB 0 2 DBCLOB 使用されません。 2
448/449 可変長文字ストリング 列の長さ属性 可変長文字ストリング ホスト変数の長さ属性
452/453 固定長文字ストリング 列の長さ属性 固定長文字ストリング ホスト変数の長さ属性
456/457 長可変長文字ストリング 列の長さ属性 長可変長文字ストリング ホスト変数の長さ属性
460/461 該当しない 該当しない NUL で終了する文字ストリング ホスト変数の長さ属性
464/465 可変長グラフィック・ストリング 列の長さ属性 可変長グラフィック・ストリング ホスト変数の長さ属性
468/469 固定長グラフィック・ストリング 列の長さ属性 固定長グラフィック・ストリング ホスト変数の長さ属性
472/473 長い可変長グラフィック・ストリング 列の長さ属性 長いグラフィック・ストリング ホスト変数の長さ属性
476/477 該当しない 該当しない PASCAL の L- ストリング ホスト変数の長さ属性
480/481 浮動小数点数 単精度では 4、倍精度では 8 浮動小数点数 単精度では 4、倍精度では 8
484/485 パック 10 進数 バイト 1 は精度、バイト 2 は位取り パック 10 進数 バイト 1 は精度、バイト 2 は位取り
488/489 ゾーン 10 進数 バイト 1 は精度、バイト 2 は位取り ゾーン 10 進数 バイト 1 は精度、バイト 2 は位取り
492/493 64 ビット整数 8 1 64 ビット整数 8
496/497 大整数 4 1 大整数 4
500/501 短整数 2 1 短整数 2
504/505 該当しない 該当しない DISPLAY SIGN LEADING SEPARATE バイト 1 は精度、バイト 2 は位取り
904/905 ROWID 40 ROWID 40
908/909 可変長バイナリー・ストリング 列の長さ属性 可変長バイナリー・ストリング ホスト変数の長さ属性
912/913 固定長バイナリー・ストリング 列の長さ属性 固定長バイナリー・ストリング ホスト変数の長さ属性
916/917 該当しない 該当しない BLOB ファイル参照変数 267
920/921 該当しない 該当しない CLOB ファイル参照変数 267
924/925 該当しない 該当しない DBCLOB ファイル参照変数 267
960/961 該当しない 該当しない BLOB ロケーター 4
964/965 該当しない 該当しない CLOB ロケーター 4
968/969 該当しない 該当しない DBCLOB ロケーター 4
972 該当しない 該当しない 結果セット・ロケーター 8
988/989 XML 0 該当しない。XML AS CLOB、 XML AS DBCLOB、または XML AS BLOB を使用します。 0
996/997
該当しない
DECFLOAT(16)
DECFLOAT(34)
該当しない
8
16
DECFLOAT(7) 4
DECFLOAT(16)
DECFLOAT(34)
4
8
16
2452/2453 該当しない 該当しない XML ロケーター 4
を参照してください。
1 SQLDA では、2 進数は長さ 2、4、または 8 で表される場合と、バイト 1 の精度と バイト 2 の位取りによって表される場合があります。最初のバイトが x'00' より大きい場合は、精度および位取りが入っていることを示します。
2 拡張 SQLVAR 内のフィールド SQLLONGLEN には、列の長さ属性が含まれます。
3 *JUL、*YMD、*DMY、および *MDY フォーマットの場合はもっと短くなります。 詳しくは、表 1
4 Db2® は DECFLOAT(7) の数値を内部に格納しませんが、アプリケーションから渡された DECFLOAT(7) の数値はサポートします。 SQL ステートメントで参照されている DECFLOAT(7) 変数は、DECFLOAT(16) に変換されます。