§ Oracle兼容-函数-DUMP()函数
§ 1. 语法
DUMP( expr[, return_format] [, start_position] [, length] )
1
§ 2. 定义和用法
基本参数4个,至少要传入参数expr。
expr
,要进行分析的表达式,可以是数字或字符串等,也可以是各个类型的值。
注意:
不支持大对象类型(如:
BLOB
、CLOB
、JSON
等)、枚举类型以及空间类型。另外对如:
set @a=xxx;
这种@a
临时变量参数也暂不支持。当参数expr为NULL,直接返回NULL。
return_fmt
,设置返回参数的格式,有6种用法:- 2:以2进制返回结果值。
- 8:以8进制返回结果值。
- 10:以10进制返回结果值(默认)。
- 16:以16进制返回结果值。
- 大于等于17时:以单字符的形式返回结果值。
- 1000:以上前4种加上1000,表示在返回值中加上当前处理数据使用字符集(字符集由系统选项
character_set_system
定义)。
说明: 当 return_fmt
参数不符合上述格式要求时,则默认使用 10进制 作为返回结果格式。
start_position
,指定返回的字符起始位置,若参数超过expr
实际长度则返回NULL。length
,指定返回的字符长度,若参数超过expr
实际长度则返回start_position
之后剩余长度的数据。
§ 3. 示例
-- 1.参数expr为NULL
greatsql> SELECT DUMP(NULL);
+------------+
| DUMP(NULL) |
+------------+
| NULL |
+------------+
-- 2.除参数expr外,其他参数默认(默认以10进制返回数据)
greatsql> SELECT DUMP('GreatSQL');
+-----------------------------------------------+
| DUMP('GreatSQL') |
+-----------------------------------------------+
| Type=15 Len=10:8,0,71,114,101,97,116,83,81,76 |
+-----------------------------------------------+
-- 3.从位置3开始的数据,以10进制形式返回
greatsql> SELECT DUMP('GreatSQL', 10, 3);
+-------------------------------------------+
| DUMP('GreatSQL', 10, 3) |
+-------------------------------------------+
| Type=15 Len=10:71,114,101,97,116,83,81,76 |
+-------------------------------------------+
-- 4.以2进制形式返回数据
greatsql> SELECT DUMP('GreatSQL', 2, 3);
+--------------------------------------------------------------------------------+
| DUMP('GreatSQL', 2, 3) |
+--------------------------------------------------------------------------------+
| Type=15 Len=10:1000111,1110010,1100101,1100001,1110100,1010011,1010001,1001100 |
+--------------------------------------------------------------------------------+
-- 5.以10进制形式返回数据
greatsql> SELECT DUMP('GreatSQL', 10);
+-----------------------------------------------+
| DUMP('GreatSQL', 10) |
+-----------------------------------------------+
| Type=15 Len=10:8,0,71,114,101,97,116,83,81,76 |
+-----------------------------------------------+
-- 6.以16进制形式返回数据
greatsql> SELECT DUMP('GreatSQL', 16);
+----------------------------------------------+
| DUMP('GreatSQL', 16) |
+----------------------------------------------+
| Type=15 Len=10:08,00,47,72,65,61,74,53,51,4c |
+----------------------------------------------+
-- 7.以单字符形式返回数据
greatsql> SELECT DUMP('GreatSQL', 17);
+-------------------------------+
| DUMP('GreatSQL', 17) |
+-------------------------------+
| Type=15 Len=8:G,r,e,a,t,S,Q,L |
+-------------------------------+
-- 8.以10进制形式返回数据,并显示字符集信息
greatsql> SELECT DUMP('GreatSQL', 1010);
+--------------------------------------------------------------------+
| DUMP('GreatSQL', 1010) |
+--------------------------------------------------------------------+
| Type=15 Len=10 CharacterSet=utf8mb3:8,0,71,114,101,97,116,83,81,76 |
+--------------------------------------------------------------------+
-- 9.以16进制形式返回数据,并显示字符集信息
greatsql> SELECT DUMP('GreatSQL', 1016);
+-------------------------------------------------------------------+
| DUMP('GreatSQL', 1016) |
+-------------------------------------------------------------------+
| Type=15 Len=10 CharacterSet=utf8mb3:08,00,47,72,65,61,74,53,51,4c |
+-------------------------------------------------------------------+
-- 10.以单字符形式返回数据,并显示字符集信息
+----------------------------------------------------+
| DUMP('GreatSQL', 1017) |
+----------------------------------------------------+
| Type=15 Len=8 CharacterSet=utf8mb3:G,r,e,a,t,S,Q,L |
+----------------------------------------------------+
-- 11.参数length超过expr实际长度
greatsql> SELECT DUMP('GreatSQL', 16, 3, 99);
+----------------------------------------+
| DUMP('GreatSQL', 16, 3, 99) |
+----------------------------------------+
| Type=15 Len=10:47,72,65,61,74,53,51,4c |
+----------------------------------------+
-- 12.参数start_position超过expr实际长度
greatsql> SELECT DUMP('GreatSQL', 16, 99, 3);
+-----------------------------+
| DUMP('GreatSQL', 16, 99, 3) |
+-----------------------------+
| NULL |
+-----------------------------+
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
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
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
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
扫码关注微信公众号