BASE64_DECODE (Transact-SQL)
适用于:Azure SQL 数据库 Microsoft Fabric 中的 SQL 分析终结点和仓库
BASE64_DECODE 将 base64 编码的 varchar 转换为相应的 varbinary。
语法
BASE64_DECODE(expression)
参数
expression
varchar 类型的表达式 (n | max)。
返回类型
- Varbinary(8000)。
- 如果输入为 varchar(max),则为 Varbinary(max)。
- 如果输入表达式为 null,则输出为 null。
备注
编码后的字符串的字母表必须是 RFC 4648 表 1 的字母表,可能包含填充,但不需要填充。 此外也接受 RFC 4648 表 2 中指定的 URL 安全的字母表。 此函数忽略空格字符:\n
、\r
、\t
和
。
- 如果输入包含的一些字符未包含在 RFC 4648 指定的标准或 URL 安全的字母表中,函数将返回错误“消息 9803,级别 16,状态 20,第 15 行,类型 "Base64Decode" 的数据无效”。
- 如果数据包含有效字符,但格式不正确,函数将返回错误“消息 9803,状态 21”。
- 如果输入包含两个以上的填充字符或填充字符后跟额外的有效输入,函数将返回错误“消息 9803,状态 23”。
示例
A. 标准 BASE64_DECODE
在以下示例中,base64 编码的字符串解码回 varbinary。
SELECT BASE64_DECODE ('qQ==');
结果集如下。
-------------
0xA9
(1 row affected)
B. BASE64_DECODE 标准 base64 字符串
在以下示例中,字符串采用 base64 解码。 请注意,字符串包含 URL 不安全的字符 =
和 /
。
SELECT BASE64_DECODE('yv7K/g==')
结果集如下。
------------
0xCAFECAFE
(1 row affected)
°C BASE64_DECODE varchar url_safe base64 字符串
与示例 B 相比,此示例中的 base64 字符串是使用 RFC 4648 表 2 (url_safe) 进行编码的,但可以采用与示例 B 相同的方式进行解码。
SELECT BASE64_DECODE('yv7K_g')
结果集如下。
------------
0xCAFECAFE
(1 row affected)
D. BASE64_DECODE varchar 包含不在 base64 字母表中的字符
此示例包含的字符不是有效的 base64 字符。
SELECT BASE64_DECODE('qQ!!')
结果集如下。
Msg 9803, Level 16, State 20, Line 223
Invalid data for type "Base64Decode".