从数字数据隐式转换为字符串数据
当 Db2 隐式将数值转换为字符串值时,目标类型为VARCHAR值,然后与其他字符串或图形字符串数据类型兼容。
转换结果的长度属性和CCSID属性与VARCHAR函数一样确定。 当涉及图形或变图形数据类型时,编码方案必须为UNICODE。 下表显示了目标类型和长度:
| 源数据类型 | 目标数据类型 |
|---|---|
| SMALLINT | varchar(6) |
| INTEGER | VARCHAR(11) |
| BIGINT | VARCHAR(20) |
| 数字或小数 | VARCHAR (精度 +2) |
| REAL | VARCHAR(24) |
| FLOAT | VARCHAR(24) |
| 双 | VARCHAR(24) |
| DECFLOAT | VARCHAR(42) |
数值到字符串的隐式转换可能发生在以下情况:
- 赋值(源值为数字,目标操作数为字符串或图形字符串数据类型)。
在赋值语句中,SET语句不支持特殊寄存器的隐式转换,函数中的RETURNS子句和RETURN语句以及SQL控制语句:RETURN、SIGNAL和RESIGNAL。
- 连接运算符(CONCAT和||)的应用
- 集合运算符的应用。
在以下情况下不支持隐式转换:
- 集合运算符的一个操作数是数值,另一个是字符串值
- 数值与字符串值进行比较或赋值,字符串值是包含集合运算符的全选结果
赋值给作为 SELECT INTO 语句目标的全球变量