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


1. 语法

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

2. 定义和用法

基本参数4个,至少要传入参数expr。

  • expr,要进行分析的表达式,可以是数字或字符串等,也可以是各个类型的值。

注意:

  • 不支持大对象类型(如:BLOBCLOBJSON等)、枚举类型以及空间类型。

  • 另外对如: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.参数exprNULL
  2. greatsql> SELECT DUMP(NULL);
  3. +------------+
  4. | DUMP(NULL) |
  5. +------------+
  6. | NULL |
  7. +------------+
  8. -- 2.除参数expr外,其他参数默认(默认以10进制返回数据)
  9. greatsql> SELECT DUMP('GreatSQL');
  10. +-----------------------------------------------+
  11. | DUMP('GreatSQL') |
  12. +-----------------------------------------------+
  13. | Type=15 Len=10:8,0,71,114,101,97,116,83,81,76 |
  14. +-----------------------------------------------+
  15. -- 3.从位置3开始的数据,以10进制形式返回
  16. greatsql> SELECT DUMP('GreatSQL', 10, 3);
  17. +-------------------------------------------+
  18. | DUMP('GreatSQL', 10, 3) |
  19. +-------------------------------------------+
  20. | Type=15 Len=10:71,114,101,97,116,83,81,76 |
  21. +-------------------------------------------+
  22. -- 4.2进制形式返回数据
  23. greatsql> SELECT DUMP('GreatSQL', 2, 3);
  24. +--------------------------------------------------------------------------------+
  25. | DUMP('GreatSQL', 2, 3) |
  26. +--------------------------------------------------------------------------------+
  27. | Type=15 Len=10:1000111,1110010,1100101,1100001,1110100,1010011,1010001,1001100 |
  28. +--------------------------------------------------------------------------------+
  29. -- 5.10进制形式返回数据
  30. greatsql> SELECT DUMP('GreatSQL', 10);
  31. +-----------------------------------------------+
  32. | DUMP('GreatSQL', 10) |
  33. +-----------------------------------------------+
  34. | Type=15 Len=10:8,0,71,114,101,97,116,83,81,76 |
  35. +-----------------------------------------------+
  36. -- 6.16进制形式返回数据
  37. greatsql> SELECT DUMP('GreatSQL', 16);
  38. +----------------------------------------------+
  39. | DUMP('GreatSQL', 16) |
  40. +----------------------------------------------+
  41. | Type=15 Len=10:08,00,47,72,65,61,74,53,51,4c |
  42. +----------------------------------------------+
  43. -- 7.以单字符形式返回数据
  44. greatsql> SELECT DUMP('GreatSQL', 17);
  45. +-------------------------------+
  46. | DUMP('GreatSQL', 17) |
  47. +-------------------------------+
  48. | Type=15 Len=8:G,r,e,a,t,S,Q,L |
  49. +-------------------------------+
  50. -- 8.10进制形式返回数据,并显示字符集信息
  51. greatsql> SELECT DUMP('GreatSQL', 1010);
  52. +--------------------------------------------------------------------+
  53. | DUMP('GreatSQL', 1010) |
  54. +--------------------------------------------------------------------+
  55. | Type=15 Len=10 CharacterSet=utf8mb3:8,0,71,114,101,97,116,83,81,76 |
  56. +--------------------------------------------------------------------+
  57. -- 9.16进制形式返回数据,并显示字符集信息
  58. greatsql> SELECT DUMP('GreatSQL', 1016);
  59. +-------------------------------------------------------------------+
  60. | DUMP('GreatSQL', 1016) |
  61. +-------------------------------------------------------------------+
  62. | Type=15 Len=10 CharacterSet=utf8mb3:08,00,47,72,65,61,74,53,51,4c |
  63. +-------------------------------------------------------------------+
  64. -- 10.以单字符形式返回数据,并显示字符集信息
  65. +----------------------------------------------------+
  66. | DUMP('GreatSQL', 1017) |
  67. +----------------------------------------------------+
  68. | Type=15 Len=8 CharacterSet=utf8mb3:G,r,e,a,t,S,Q,L |
  69. +----------------------------------------------------+
  70. -- 11.参数length超过expr实际长度
  71. greatsql> SELECT DUMP('GreatSQL', 16, 3, 99);
  72. +----------------------------------------+
  73. | DUMP('GreatSQL', 16, 3, 99) |
  74. +----------------------------------------+
  75. | Type=15 Len=10:47,72,65,61,74,53,51,4c |
  76. +----------------------------------------+
  77. -- 12.参数start_position超过expr实际长度
  78. greatsql> SELECT DUMP('GreatSQL', 16, 99, 3);
  79. +-----------------------------+
  80. | DUMP('GreatSQL', 16, 99, 3) |
  81. +-----------------------------+
  82. | NULL |
  83. +-----------------------------+

问题反馈

联系我们

扫码关注微信公众号

greatsql-wx