南大通用GBase 8a通过hex/unhex函数将16进制数字和字符串转换

GBase 8a支持hex函数,可以将一个字符串或数值转换为一个十六进制格式的字符串。也支持unhex将16进制字符串转化成数字。

函数说明 HEX(N_or_S)

返回参数对应的十六进制值。

  • 如果 N_or_S 是一个数字,则返回它的十六进制字符串形式,在这里,N 是一个 BIGINT 数,相当于 CONV(N,10,16);
  • 如果 N_or_S是一个字符串,则返回每个字符对应的十六进制形式,其中每个字符被转化为两个十六进制数字。
  • 以 0xff 形式出现的字符串是此函数的反转操作,此时,将每两位十六进制转换成其 ASCII 码输出一个字符。

使用样例

N_or_S 值为数字

gbase> SELECT HEX(255) FROM dual;
+----------+
| HEX(255) |
+----------+
| FF |
+----------+
1 row in set

N_or_S 值为字符串。

gbase> SELECT HEX('cat') FROM dual;
+------------+
| HEX('cat') |
+------------+
| 636174 |
+------------+
1 row in set

反函数,从字符串转十六进制数

gbase> SELECT 0x616263 FROM dual;
+----------+
| 0x616263 |
+----------+
| abc |
+----------+
1 row in set

UNHEX函数

和hex完全相反,将16进制字符串还原成数字类型。

gbase> select unhex('616263');
+-----------------+
| unhex('616263') |
+-----------------+
| abc             |
+-----------------+
1 row in set (Elapsed: 00:00:00.00)