从数字数据隐式转换为字符串数据

Db2 隐式将数值转换为字符串值时,目标类型为VARCHAR值,然后与其他字符串或图形字符串数据类型兼容。

转换结果的长度属性和CCSID属性与VARCHAR函数一样确定。 当涉及图形或变图形数据类型时,编码方案必须为UNICODE。 下表显示了目标类型和长度:

表 1. 从数字类型隐式转换为字符串类型的类型和长度属性
源数据类型 目标数据类型
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 语句目标的全球变量更改结束