类别:

字符串和二进制函数 (编码/解码)

TRY_BASE64_DECODE_STRING

BASE64_DECODE_STRING 的特殊版本,如果在解码过程中发生错误,它会返回 NULL 值。

BASE64_DECODE_STRINGTRY_BASE64_DECODE_STRINGBASE64_ENCODE 的“倒数”(或“反”)函数。

语法

TRY_BASE64_DECODE_STRING(<input> [, <alphabet>])
Copy

实参

input

要解码为普通字符串的 base64 编码字符串。

alphabet

至多由三个 ASCII 字符组成的字符串:

  • 字符串中的前两个字符指定用于编码输入的字母表中的最后两个字符(索引 62 和 63):

    • A``Z``(索引 0-25)。

    • a``z``(索引 26-51)。

    • 0``9``(索引 52-61)。

    • +``/``(索引 62、63)。

    默认字符:+/

  • 字符串中的第三个字符指定用于填充的字符。

    默认:=

返回

字符串。

使用说明

有关 base64 格式的更多信息,请参阅 base64

示例

此示例显示如何使用该函数,并演示 TRY_BASE64_DECODE_STRINGBASE64_ENCODE 反函数:

SELECT TRY_BASE64_DECODE_STRING(BASE64_ENCODE('HELLO'));
+--------------------------------------------------+
| TRY_BASE64_DECODE_STRING(BASE64_ENCODE('HELLO')) |
|--------------------------------------------------|
| HELLO                                            |
+--------------------------------------------------+
Copy

下面显示更现实的示例:

创建表和数据:

CREATE TABLE base64 (v VARCHAR, base64_string VARCHAR, garbage VARCHAR);
INSERT INTO base64 (v, base64_string, garbage) 
  SELECT 'HELLO', BASE64_ENCODE('HELLO'), '127';
Copy

使用 TRY_BASE64_DECODE_STRING 函数查询数据:

SELECT v, base64_string, TRY_BASE64_DECODE_STRING(base64_string), TRY_BASE64_DECODE_STRING(garbage) FROM base64;
+-------+---------------+-----------------------------------------+-----------------------------------+
| V     | BASE64_STRING | TRY_BASE64_DECODE_STRING(BASE64_STRING) | TRY_BASE64_DECODE_STRING(GARBAGE) |
|-------+---------------+-----------------------------------------+-----------------------------------|
| HELLO | SEVMTE8=      | HELLO                                   | NULL                              |
+-------+---------------+-----------------------------------------+-----------------------------------+
Copy
语言: 中文