

本文属于机器翻译版本。若本译文内容与英语原文存在差异，则一律以英文原文为准。

# UNHEX 函数
<a name="UNHEX"></a>

UNHEX 函数将十六进制字符串转换回其原始字符串表示形式。

在需要处理以十六进制格式存储或传输的数据，并且需要恢复原始字符串表示形式以便进一步处理或显示的情况下，此函数非常有用。

UNHEX 函数是十六进[制函数的对应函数](HEX.md)。

## 语法
<a name="UNHEX-syntax"></a>

```
unhex(expr)
```

## Arguments
<a name="UNHEX-arguments"></a>

 *expr*   
由十六进制字符组成的字符串表达式。

## 返回类型
<a name="UNHEX-returns"></a>

UNHEX 返回一个二进制。

如果 *expr* 的长度为奇数，则丢弃第一个字符并用空字节填充结果。如果 e *xpr* 包含非十六进制字符，则结果为 NULL。

## 示例
<a name="UNHEX-example"></a>

以下示例通过同时使用 UNHEX () 和 DECODE () 函数，将十六进制字符串转换回其原始字符串表示形式。查询的第一部分使用 UNHEX () 函数将十六进制字符串 '537061726B2053514C' 转换为其二进制表示形式。查询的第二部分使用 DECODE () 函数使用 'UTF-8' 字符编码将从 UNHEX () 函数获得的二进制数据转换回字符串。查询的输出是原始字符串 'spark\$1SQL'，它被转换为十六进制，然后又转换为字符串。

```
SELECT decode(unhex('537061726B2053514C'), 'UTF-8');
 Spark SQL
```