带有 2 字节字符串长度指示符而且并非以 null 结束的变长字符串。
注:
以下格式的主变量结构始终被视为 VARCHAR 主变量,无法声明:
struct tag {
short int;
char[n]
struct {
sqluint32 length;
char data[N];
}
1<=N<=2 147 483 647
SQLUDF_CLOB
XML 值
struct
myVarBinField_t
{sqluint16 length;char data[N];}
myVarBinField;
1<= N <=32 672
Varbinary 数据
SQL 列类型下的第一个数字表示未提供指示符变量,第二个数字表示提供了指示符变量。 指示符变量用于指示 NULL 值或者用于存放已截断的字符串的长度。 这些是 SQLDA 的 SQLTYPE 字段对于这些数据类型将包含的值。
为了实现平台兼容性,请使用 sqlint32。 在 64 位 UNIX 和 Linux® 操作系统上, "long" 是 64 位整数。 在 64 位 Windows 操作系统和 32 位 UNIX 和 Linux 操作系统上, "long" 是 32 位整数。
为了实现平台兼容性,请使用 sqlint64。 Db2 数据库系统 sqlsystm.h 头文件具有 sqlint64 的类型定义,在使用 Microsoft 编译器时,在受支持的 Windows 操作系统上为 "__int64" ,在 32 位 UNIX 和 Linux 操作系统上为 "long long" ,在 64 位 UNIX 和 Linux 操作系统上为 "long"。
字符串的长度可以是 19 - 32 字节(不带 null 终止符),这取决于指定的秒小数位数。 (可选)可以指定
TIMESTAMP 数据类型的小数秒部分,以使时间戳记精度为 0-12 位。
将时间戳记值指定给秒小数位数不同的时间戳记变量时,该值将被截断或者填充 0 以便与时间戳记变量的格式匹配。
FLOAT(n),其中 0 < n < 25,是 REAL 的同义词。 在 SQLDA 中,REAL 与 DOUBLE 之间的差别是长度值(4 或 8)。
下列 SQL 类型是 DOUBLE 的同义词:
- FLOAT
- FLOAT(N) where 24 < N < 54 is a synonym for DOUBLE
- DOUBLE PRECISION
- 这不是列类型,而是主变量类型。
- 只有 DESCRIBE 请求才会返回 SQL_TYP_XML/SQL_TYP_NXML 值。 应用程序不能直接使用此值将应用程序资源与 XML 值绑定。
- 不推荐使用 LONG VARCHAR 和 LONG VARGRAPHIC 数据类型,将来的发行版会将其除去。 请改为选择 CLOB 或 DBCLOB 数据类型。
- 数据库管理器 将以 VARCHAR (m) 形式处理以 null 结束的可变长度字符串数据类型 char [n] (数据类型 460)。
- 如果 LANGLEVEL 为 SAA1,那么主变量长度 m 等于 char[n] 中的字符串长度 n
或者第一个 null 终止符(
\0
)之前的字节数(以较小者为准)。
- 如果 LANGLEVEL 为 MIA,那么主变量长度 m 等于第一个 null 终止符(
\0
)之前的字节数。
- 数据库管理器 将以 VARGRAPHIC (m) 形式处理以 null 结束的可变长度图形字符串数据类型
wchar_t[n]
或 sqldbchar[n]
(数据类型 400 ®)。
- 如果 LANGLEVEL 为 SAA1,那么主变量长度 m 等于
wchar_t[n]
或 sqldbchar[n]
中的字符串长度 n 或第一个图形 null 结束符之前的字符数 (以较小者为准)。
- 如果 LANGLEVEL 为 MIA,那么主变量长度 m 等于第一个图形 null 终止符之前的字符数。