VastbaseG100

基于openGauss内核开发的企业级关系型数据库。

Menu

UNHEX

功能描述

UNHEX函数用于将一个十六进制编码的字符串解码。

UNHEX解码规则

一个十六进制字符变成4位二进制,两个十六进制字符(8位)解码为一个字符,返回字符串的解码结果(text类型)。若十六进制字符串的字符数不为偶数,则在高位补0。若输入的是二进制格式的字符串,则返回NULL。

例如:4142

1、将每个十六进制字符用4位二进制表示,若十六进制字符数不为偶数,则在高位补0:0100(4)0001(1)0100(4)0010(2)。

2、每8位组成一个字符:01000001 01000010。

3、故解码结果为AB。

select UNHEX('4142');

返回结果如下:

unhex
-------
  AB
(1 row)

HEX函数用于得到输入数据的十六进制表现形式,UNHEX函数可将HEX函数的转换结果还原为其原始数据。

注意事项

  • 该功能仅在数据库兼容模式为MySQL时支持(即数据库初始化时指定DBCOMPATIBILITY='B')。
  • 如果输入的是NULL或者包含非十六进制字符,那么返回的结果为NULL。
  • 若输入的是数字,则将数字转成字符串后进行解码,如需将十六进制数转为十进制数,则需要使用其它的函数。

语法格式

UNHEX( text )

参数说明

text

输入的待转换数据,当前仅支持变长字符串类型text。

示例

1、使用HEX函数将字符串转换为十六进制表现形式。

select HEX('1234abc&');

返回结果如下:

       hex
------------------
 3132333461626326
(1 row)

2、使用上一步转换得到的结果作为UNHEX函数的入参,得到转换前的原始数据。

select UNHEX('3132333461626326');

返回结果如下:

  unhex
----------
 1234abc&
(1 row)

上述语句等效于:

select UNHEX(HEX('1234abc&'));