BASE64_DECODE (Transact-SQL)
Applies to: Azure SQL Database SQL analytics endpoint and Warehouse in Microsoft Fabric
BASE64_DECODE converts a base64 encoded varchar into the corresponding varbinary.
Transact-SQL syntax conventions
Syntax
BASE64_DECODE(expression)
Arguments
expression
An expression of type varchar (n | max).
Return types
- Varbinary(8000).
- Varbinary(max) if the input is varchar(max).
- If the input expression is null, the output is null.
Remarks
The encoded string's alphabet must be that of RFC 4648 Table 1 and may include padding, though padding is not required. The URL-safe alphabet specified within RFC 4648 Table 2 is also accepted. This function ignores whitespace characters: \n
, \r
, \t
, and
.
- When the input contains characters not contained within the standard or URL-safe alphabets specified by RFC 4648 the function returns error "Msg 9803, Level 16, State 20, Line 15, Invalid data for type "Base64Decode"".
- If the data has valid characters, but incorrectly formatted, the function returns error Msg 9803, State 21.
- If the input contains more than two padding characters or padding characters followed by extra valid input the function returns error Msg 9803, State 23.
Examples
A. Standard BASE64_DECODE
In the following example, the base64 encoded string is decoded back into varbinary.
SELECT BASE64_DECODE ('qQ==');
Here's the result set.
-------------
0xA9
(1 row affected)
B. BASE64_DECODE a standard base64 string
In the following example, the string is base64 decoded. Note the string contains URL-unsafe characters =
and /
.
SELECT BASE64_DECODE('yv7K/g==')
Here's the result set.
------------
0xCAFECAFE
(1 row affected)
C. BASE64_DECODE varchar url_safe base64 string
In contrast to example B, this example base64 string was encoded using RFC 4648 Table 2 (url_safe), but can be decoded the same way as example B.
SELECT BASE64_DECODE('yv7K_g')
Here's the result set.
------------
0xCAFECAFE
(1 row affected)
D. BASE64_DECODE varchar contains characters not in the base64 alphabet
This example contains characters that aren't valid base64 characters.
SELECT BASE64_DECODE('qQ!!')
Here's the result set.
Msg 9803, Level 16, State 20, Line 223
Invalid data for type "Base64Decode".