#CHR
CHR函数将expr表示的十进制编码按照数据库字符集转换为对应的字符,返回结果为VARCHAR类型。
expr
通用表达式,其值必须为除BIT外的数值型或可以转换为NUMBER类型的字符型。
- 如果expr的值为小数,函数会先对其FLOOR取整,且要求取整后的值在[0, 232-1]区间内,否则返回Out of range错误。
- expr的值为NULL时,函数返回NULL。
- 根据数据库字符集情况不同,对参数的处理不同:
- 对于单字节字符集,码值范围为[0,255],当expr的值小于0时,函数返回错误,当expr的值大于255时,函数将对其按256取模(即
MOD(expr,256))后再进行转换。 - 对于多字节字符集,n必须解析为一个完整的编码,无效编码不被验证。在LSC表或TAC表中,多字节字符集的实际表现等同于单字节字符集。
- 对于单字节字符集,码值范围为[0,255],当expr的值小于0时,函数返回错误,当expr的值大于255时,函数将对其按256取模(即
示例
-- 假设expr为字符型数据'2344556.44',数据库服务端字符集为ASCII
-- 1. 函数会先将其转换为NUMBER类型,得到小数2344556.44
-- 2. 对其取整FLOOR(2344556.44),得到整数2344556
-- 3. 值大于255,需对其取模MOD(2344556,256),得到108
-- 4. 最后执行ASCII码数值转换
SELECT CHR('2344556.44') res FROM DUAL;
RES
-----
l
-- 假设数据库服务端字符集为UTF8
SELECT CHR(14844052) RES FROM DUAL;
RES
-----
——

