SQLTYPE 和 SQLLEN

下表显示了可能出现在 SQLDA 的 SQLTYPE 和 SQLLEN 字段中的值。 在 PREPARE 和 DESCRIBE 中, SQLTYPE 的偶数值表示列不允许空值,奇数值表示列允许空值。

注意:在 DESCRIBE 或 PREPARE 语句中使用的 SQLDA 中,如果一个操作数为空值,或者如果表达式可能导致-2映射错误空值,则表达式将返回奇数值。

在 FETCH , OPEN , CALL 和 EXECUTE 中, SQLTYPE 的偶数值表示不提供指示符变量,奇数值表示 SQLIND 包含指示符变量的地址。

表 1. PREPARE , DESCRIBE , FETCH , OPEN , CALL 或 EXECUTE 的 SQLTYPE 和 SQLLEN 值
SQLTYPE 对于 PREPARE 和 DESCRIBE 对于 FETCH , OPEN , CALL 和 EXECUTE
列数据类型 SQLLEN 主变量数据类型 SQLLEN
384/385 日期 3 10 日期的固定长度字符串表示 主变量的长度属性
388/389 时间 8 时间的固定长度字符串表示 主变量的长度属性
392/393 时间戳记
19 表示 TIMESTAMP (0)
,否则 20 +p 表示
TIMESTAMP (p)
时间戳记的固定长度字符串表示 主变量的长度属性
396/397 DataLink 列的长度属性 DataLink 主变量的长度属性
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 压缩十进制 精度 (以字节为 1); 小数位 (以字节为 2) 压缩十进制 精度 (以字节为 1); 小数位 (以字节为 2)
488/489 分区十进制 精度 (以字节为 1); 小数位 (以字节为 2) 分区十进制 精度 (以字节为 1); 小数位 (以字节为 2)
492/493 大整数 8 1 大整数 8
496/497 大整数 4 1 大整数 4
500/501 small integer(小整数) 2 1 small integer(小整数) 2
504/505 不适用 不适用 显示符号前导分隔 精度 (以字节为 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 不适用 不适用 结果集定位器 (result set locator) 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
开始更改2436/2437结束更改 开始更改布尔值结束更改 开始更改第 1 年结束更改 开始更改布尔值结束更改 开始更改第 1 年结束更改
2452/2453 不适用 不适用 XML 定位器 4
1 二进制数字可以在 SQLDA 中以长度 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)。