未打包的行
未打包行指定调用UNPACK内置函数的结果行。
- UNPACK-函数调用
- 指定调用UNPACK内置函数。 指定的字段名称和字段类型的数量必须与UNPACK函数调用返回的字段数量相同。
- field-name
- 指定UNPACK函数返回的字段。 名字不必限定,也不必独一无二。
- data-type
- 指定字段的内置数据类型。 指定的数据类型、长度和CCSID必须与参数最初使用PACK函数编码时的数据类型、长度和CCSID一致。
对于非打包行 ,不得指定CCSID 1208和CCSID 1200条款。
下表提供了压缩字符串数据支持的类型映射:
表 1. 压缩字符串数据的数据类型映射 UNPACK压缩字符串中编码值的类型 为UNPACK指定的数据类型 SMALLINT SMALLINT、INTEGER 和 BIGINT INTEGER 整数、大整数 BIGINT BIGINT 小数(p,s )1 十进制 (p',s' ),如果 s'<s ,则截取 s-s' 位。 如果有效数字超过 p'-s' ,则会发生错误。 真 2 或双 3 双精度值 CHAR(n) 或 VARCHAR(n) CHAR (m ), VARCHAR(m ) 如果 m<n 且 n-m 中的任意字符不为空,则会发生错误。 否则, n-m 中的空格将被截断。 如果 m > n 且指定的数据类型为 CHAR,则会附加 mn 个空格。
BINARY(n) 或 VARBINARY(n) 二进制 (m )、 可变二进制(m ) 如果 m < n ,则发生错误。 如果 m > n 且 UNPACK 目标是 BINARY,则会附加 mn 个 X'00' 字节。
日期 日期 时间 时间 无时区的TIMEST AMP(p ) 不含时区的TIMESTAMP (p')。 如果 p' > p ,则添加 p'-p 零。 如果 p' < p ,则截断 p-p' 位数。 带时区的TIMESTAMP (p ) 带时区的TIMESTAMP (p')。 如果 p' > p ,则添加 p'-p 零。 如果 p' < p ,则截断 p-p' 位数。 备注: 小写数据类型定义如下:- 十进制 = DECIMAL(p,s) 或 NUMERIC(p,s)
- real = REAL 或 FLOAT(n ),其中 n 是单精度浮点数的规格
- double = DOUBLE、DOUBLE PRECISION、FLOAT 或 FLOAT(n ),其中 n 是双精度浮点数的规格
