BASE64_DECODE(Transact-SQL)

适用于:Microsoft Fabric 中的 Azure SQL 数据库SQL 分析终结点和仓库

BASE64_DECODE 将 base64 编码 的 varchar 表达式转换为相应的 varbinary 表达式。

Transact-SQL 语法约定

语法

BASE64_DECODE ( expression )

参数

expression

varchar(n) 或 varchar(max)类型的表达式。

返回类型

  • 如果输入为 varchar(n),则 varbinary(8000)。
  • 如果输入为 varchar(max),则为 varbinary(max)。
  • 如果输入表达式为 NULL,则输出为 NULL

备注

编码字符串的字母必须是 RFC 4648 表 1 的字母表,并且可能包含填充,但不需要填充。 此外也接受 RFC 4648 表 2 中指定的 URL 安全的字母表。 此函数忽略空格字符:\n\r\t

  • 当输入包含未包含在 RFC 4648 指定的标准或 URL 安全字母表中的字符时,该函数将返回以下错误:

    Msg 9803, Level 16, State 20, Line 15, Invalid data for type "Base64Decode"
    
  • 如果数据具有有效字符,但格式不正确,则函数返回错误 Msg 9803, State 21

  • 如果输入包含两个以上的填充字符或填充字符,后跟额外的有效输入,函数将返回错误 Msg 9803, State 23

示例

A. 标准 BASE64_DECODE

在以下示例中,base64 编码的字符串解码回 varbinary。

SELECT BASE64_DECODE('qQ==');

结果集如下。

0xA9

B. BASE64_DECODE 标准 base64 字符串

在以下示例中,字符串采用 base64 解码。 请注意,字符串包含 URL 不安全的字符 =/

SELECT BASE64_DECODE('yv7K/g==');

结果集如下。

0xCAFECAFE

°C BASE64_DECODE varchar url_safe base64 字符串

与示例 B 相比,此示例 base64 字符串是使用 RFC 4648 表 2 编码的,url_safe但可以解码的方式与示例 B 相同。

SELECT BASE64_DECODE('yv7K_g');

结果集如下。

0xCAFECAFE

D. BASE64_DECODE varchar 包含不在 base64 字母表中的字符

此示例包含的字符不是有效的 base64 字符。

SELECT BASE64_DECODE('qQ!!');

结果集如下。

Msg 9803, Level 16, State 20, Line 223
Invalid data for type "Base64Decode".