Oracle兼容-函数-DUMP()函数


1. 语法

1. DUMP( expr[, return_format] [, start_position] [, length] )

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. -- 1.参数expr为NULL
2. greatsql> SELECT DUMP(NULL);
3. +------------+
4. | DUMP(NULL) |
5. +------------+
6. | NULL       |
7. +------------+

9. -- 2.除参数expr外,其他参数默认(默认以10进制返回数据)
10. greatsql> SELECT DUMP('GreatSQL');
11. +-----------------------------------------------+
12. | DUMP('GreatSQL')                              |
13. +-----------------------------------------------+
14. | Type=15 Len=10:8,0,71,114,101,97,116,83,81,76 |
15. +-----------------------------------------------+

17. -- 3.从位置3开始的数据,以10进制形式返回
18. greatsql> SELECT DUMP('GreatSQL', 10, 3);
19. +-------------------------------------------+
20. | DUMP('GreatSQL', 10, 3)                   |
21. +-------------------------------------------+
22. | Type=15 Len=10:71,114,101,97,116,83,81,76 |
23. +-------------------------------------------+

25. -- 4.以2进制形式返回数据
26. greatsql> SELECT DUMP('GreatSQL', 2, 3);
27. +--------------------------------------------------------------------------------+
28. | DUMP('GreatSQL', 2, 3)                                                         |
29. +--------------------------------------------------------------------------------+
30. | Type=15 Len=10:1000111,1110010,1100101,1100001,1110100,1010011,1010001,1001100 |
31. +--------------------------------------------------------------------------------+

33. -- 5.以10进制形式返回数据
34. greatsql> SELECT DUMP('GreatSQL', 10);
35. +-----------------------------------------------+
36. | DUMP('GreatSQL', 10)                          |
37. +-----------------------------------------------+
38. | Type=15 Len=10:8,0,71,114,101,97,116,83,81,76 |
39. +-----------------------------------------------+

41. -- 6.以16进制形式返回数据
42. greatsql> SELECT DUMP('GreatSQL', 16);
43. +----------------------------------------------+
44. | DUMP('GreatSQL', 16)                         |
45. +----------------------------------------------+
46. | Type=15 Len=10:08,00,47,72,65,61,74,53,51,4c |
47. +----------------------------------------------+

49. -- 7.以单字符形式返回数据
50. greatsql> SELECT DUMP('GreatSQL', 17);
51. +-------------------------------+
52. | DUMP('GreatSQL', 17)          |
53. +-------------------------------+
54. | Type=15 Len=8:G,r,e,a,t,S,Q,L |
55. +-------------------------------+

57. -- 8.以10进制形式返回数据,并显示字符集信息
58. greatsql> SELECT DUMP('GreatSQL', 1010);
59. +--------------------------------------------------------------------+
60. | DUMP('GreatSQL', 1010)                                             |
61. +--------------------------------------------------------------------+
62. | Type=15 Len=10 CharacterSet=utf8mb3:8,0,71,114,101,97,116,83,81,76 |
63. +--------------------------------------------------------------------+

65. -- 9.以16进制形式返回数据,并显示字符集信息
66. greatsql> SELECT DUMP('GreatSQL', 1016);
67. +-------------------------------------------------------------------+
68. | DUMP('GreatSQL', 1016)                                            |
69. +-------------------------------------------------------------------+
70. | Type=15 Len=10 CharacterSet=utf8mb3:08,00,47,72,65,61,74,53,51,4c |
71. +-------------------------------------------------------------------+

73. -- 10.以单字符形式返回数据,并显示字符集信息
74. +----------------------------------------------------+
75. | DUMP('GreatSQL', 1017)                             |
76. +----------------------------------------------------+
77. | Type=15 Len=8 CharacterSet=utf8mb3:G,r,e,a,t,S,Q,L |
78. +----------------------------------------------------+

80. -- 11.参数length超过expr实际长度
81. greatsql> SELECT DUMP('GreatSQL', 16, 3, 99);
82. +----------------------------------------+
83. | DUMP('GreatSQL', 16, 3, 99)            |
84. +----------------------------------------+
85. | Type=15 Len=10:47,72,65,61,74,53,51,4c |
86. +----------------------------------------+

88. -- 12.参数start_position超过expr实际长度
89. greatsql> SELECT DUMP('GreatSQL', 16, 99, 3);
90. +-----------------------------+
91. | DUMP('GreatSQL', 16, 99, 3) |
92. +-----------------------------+
93. | NULL                        |
94. +-----------------------------+

问题反馈

联系我们

扫码关注微信公众号

greatsql-wx