BASE64_DECODE (Transact-SQL)

適用於:SQL Server 2025 (17.x) Azure SQL Database AzureSQL Managed InstanceSQL Analytics endpoint in Microsoft Fabric and Warehouse in Microsoft FabricSQL database in Microsoft Fabric

BASE64_DECODE 將一個 Base64 編碼的 varchar 表達式轉換成對應 的變二位 表達式。

Transact-SQL 語法慣例

語法

BASE64_DECODE ( expression )

引數

expression

varchar(nvarchar(max) 類型的運算式。

傳回類型

  • varbinary(8000) 如果 輸入是 varchar(n),則為 varbinary(8000)。
  • varbinary(max) 如果 輸入是 varchar(max)
  • 如果輸入運算式為 NULL,則輸出為 NULL

備註

編碼字串的字母必須是 RFC 4648 表 1 的字母,而且可能包含填補,但不需要填補。 RFC 4648 表 2 內 指定的 URL 安全字母表 2 也會接受。 這個函式會忽略空白符元: \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 編碼的字串被解碼回 變異元

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 不同,本範例使用 RFC 4648 表 2 (url_safe) 來編碼 Base64 字串。 不過,你可以用和範例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".