§ Oracle兼容-函数-NCHR()函数


§ 1. 语法

NCHR(n)
1

§ 2. 定义和用法

NCHR() 函数的作用是将Unicode编码转换成对应字符的函数。使用方法与 CHR() 函数类似,只是将Unicode编码代替了ASCII码。

参数 n 的要求如下:

  1. 参数 n 的值要求为非负数,如果是负数则会报错。
  2. 参数 n 也可以是整数或浮点数,浮点数会自动被转换为(求绝对值后的)整数,例如:97.3会被转换成97 ,而97.6也会被转换成97。
  3. 参数 n 还可以是字符串,这个字符串必须能正确转换出非负整数。

§ 3. 示例

greatsql> SET @n=97.184; SELECT @n, NCHR(@n), LENGTH(NCHR(@n)), LENGTHB(NCHR(@n)), ORD(NCHR(@n))\G
Query OK, 0 rows affected (0.00 sec)

*************************** 1. row ***************************
               @n: 97.184
         NCHR(@n): a
 LENGTH(NCHR(@n)): 1
LENGTHB(NCHR(@n)): 1
    ORD(NCHR(@n)): 97

greatsql> SET @n=97.684; SELECT @n, NCHR(@n), LENGTH(NCHR(@n)), LENGTHB(NCHR(@n)), ORD(NCHR(@n))\G
Query OK, 0 rows affected (0.00 sec)

*************************** 1. row ***************************
               @n: 97.684
         NCHR(@n): a
 LENGTH(NCHR(@n)): 1
LENGTHB(NCHR(@n)): 1
    ORD(NCHR(@n)): 97

greatsql> SET @n=-97.684; SELECT @n, NCHR(@n), LENGTH(NCHR(@n)), LENGTHB(NCHR(@n)), ORD(NCHR(@n))\G
Query OK, 0 rows affected (0.00 sec)

ERROR 1210 (HY000): Incorrect arguments to function nchr.

greatsql> SET @n='97.684'; SELECT @n, NCHR(@n), LENGTH(NCHR(@n)), LENGTHB(NCHR(@n)), ORD(NCHR(@n))\G
Query OK, 0 rows affected (0.00 sec)

*************************** 1. row ***************************
               @n: 97.684
         NCHR(@n): a
 LENGTH(NCHR(@n)): 1
LENGTHB(NCHR(@n)): 1
    ORD(NCHR(@n)): 97
1 row in set (0.00 sec)

greatsql> SET @n='97.184'; SELECT @n, NCHR(@n), LENGTH(NCHR(@n)), LENGTHB(NCHR(@n)), ORD(NCHR(@n))\G
Query OK, 0 rows affected (0.00 sec)

*************************** 1. row ***************************
               @n: 97.184
         NCHR(@n): a
 LENGTH(NCHR(@n)): 1
LENGTHB(NCHR(@n)): 1
    ORD(NCHR(@n)): 97

greatsql> SET @n='97.184a'; SELECT @n, NCHR(@n), LENGTH(NCHR(@n)), LENGTHB(NCHR(@n)), ORD(NCHR(@n))\G
Query OK, 0 rows affected (0.00 sec)

ERROR 1292 (22007): Truncated incorrect DOUBLE value: '97.184a'
greatsql> SET @n='97.184  '; SELECT @n, NCHR(@n), LENGTH(NCHR(@n)), LENGTHB(NCHR(@n)), ORD(NCHR(@n))\G
Query OK, 0 rows affected (0.00 sec)

*************************** 1. row ***************************
               @n: 97.184
         NCHR(@n): a
 LENGTH(NCHR(@n)): 1
LENGTHB(NCHR(@n)): 1
    ORD(NCHR(@n)): 97
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59

greatsql-wx