- 类别:
字符串和二进制函数 (编码/解码)
TRY_BASE64_DECODE_BINARY¶
BASE64_DECODE_BINARY 的特殊版本,如果在解码过程中发生错误,它会返回 NULL 值。
语法¶
TRY_BASE64_DECODE_BINARY(<input> [, <alphabet>])
实参¶
input
要转换为 BINARY 数据类型的 base64 编码字符串。
alphabet
至多由三个 ASCII 字符组成的字符串:
字符串中的前两个字符指定用于编码输入的字母表中的最后两个字符(索引 62 和 63):
A
至Z
(索引 0-25)。a
至z
(索引 26-51)。0
至9
(索引 52-61)。+
和/
(索引 62、63)。
默认字符:
+
和/
字符串中的第三个字符指定用于填充的字符。
默认:
=
返回¶
这会返回 BINARY
值。例如,可以将该值插入到 BINARY
类型的列中。
使用说明¶
有关 base64 格式的更多信息,请参阅 base64。
示例¶
这显示了如何使用函数 TRY_BASE64_DECODE_BINARY
。 该函数在 INSERT
语句中用于将 base64 编码的字符串解码 为 BINARY 字段;该函数未在 SELECT
语句中使用。
创建表并插入数据:
CREATE TABLE base64 (v VARCHAR, base64_encoded_varchar VARCHAR, b BINARY); INSERT INTO base64 (v, base64_encoded_varchar, b) SELECT 'HELP', BASE64_ENCODE('HELP'), TRY_BASE64_DECODE_BINARY(BASE64_ENCODE('HELP'));现在运行一个查询,以显示我们可以完整地检索数据:
SELECT v, base64_encoded_varchar, -- Convert binary -> base64-encoded-string TO_VARCHAR(b, 'BASE64'), -- Convert binary back to original value TO_VARCHAR(b, 'UTF-8') FROM base64; +------+------------------------+-------------------------+------------------------+ | V | BASE64_ENCODED_VARCHAR | TO_VARCHAR(B, 'BASE64') | TO_VARCHAR(B, 'UTF-8') | |------+------------------------+-------------------------+------------------------| | HELP | SEVMUA== | SEVMUA== | HELP | +------+------------------------+-------------------------+------------------------+