SQLTYPE 和 SQLLEN
下表显示了可能出现在 SQLDA 的 SQLTYPE 和 SQLLEN 字段中的值。 在 PREPARE 和 DESCRIBE 中, SQLTYPE 的偶数值表示列不允许空值,奇数值表示列允许空值。
注意:在 DESCRIBE 或 PREPARE 语句中使用的 SQLDA 中,如果一个操作数为空值,或者如果表达式可能导致-2映射错误空值,则表达式将返回奇数值。
在 FETCH , OPEN , CALL 和 EXECUTE 中, SQLTYPE 的偶数值表示不提供指示符变量,奇数值表示 SQLIND 包含指示符变量的地址。
| 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 |
4
8 16 |
|
2436/2437![]() |
布尔值![]() |
第 1 年![]() |
布尔值![]() |
第 1 年![]() |
| 2452/2453 | 不适用 | 不适用 | XML 定位器 | 4 |
1 二进制数字可以在 SQLDA 中以长度 2 , 4 或 8 表示,也可以以字节 1 中的精度和字节 2 中的小数位表示。 如果第一个字节大于 x '00' ,那么它指示精度和小数位。
2 扩展 SQLVAR 中的字段 SQLLONGLEN 包含列的长度属性。
4 Db2® 不会在内部存储 DECFLOAT (7) 号,但它将支持来自应用程序的 DECFLOAT (7) 号。 SQL 语句中引用的 DECFLOAT (7) 变量将转换为 DECFLOAT (16)。
2436/2437