BASE64_DECODE (Transact-SQL)
適用於:Microsoft Fabric 中的 Azure SQL 資料庫
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 安全字母表 2 也會接受。 這個函式會忽略空白符元: \n
、 \r
、 \t
與
。
- 當輸入包含未包含在 RFC 4648 所指定標準或 URL 安全字母表中的字元時,函式會傳回錯誤 “Msg 9803, Level 16, State 20, Line 15, Type ”Base64Decode“ 的無效數據。
- 如果數據具有有效的字元,但格式不正確,則函式會傳回錯誤 Msg 9803,狀態 21。
- 如果輸入包含兩個以上的填補字元或填補字元,後面接著額外的有效輸入,則函式會傳回錯誤 Msg 9803,State 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".