Поделиться через


BASE64_DECODE (Transact-SQL)

Область применения: База данных SQL Azure конечная точка аналитики SQL и хранилище в Microsoft Fabric

BASE64_DECODE преобразует varchar в кодировку Base64 в соответствующий varbinary.

Соглашения о синтаксисе Transact-SQL

Синтаксис

BASE64_DECODE(expression)

Аргументы

выражение

Выражение типа varchar (n | max).

Типы возвращаемых данных

  • Varbinary(8000).
  • Varbinary(max), если входные данные — varchar(max).
  • Если входное выражение равно NULL, выходные данные равно NULL.

Замечания

Алфавит закодированной строки должен быть буквой RFC 4648 Table 1 и может включать заполнение, хотя заполнение не требуется. Url-безопасный алфавит, указанный в RFC 4648 Table 2 , также принимается. Эта функция игнорирует символы пробелов: \n, \r, \tи .

  • Если входные данные содержат символы, не содержащиеся в стандартных или URL-безопасных алфавитах, указанных RFC 4648, функция возвращает ошибку "Msg 9803, Level 16, State 20, Line 15, Invalid data for type Base64Decode".
  • Если данные имеют допустимые символы, но неправильно отформатированы, функция возвращает ошибку Msg 9803, state 21.
  • Если входные данные содержат более двух символов заполнения или символов заполнения, за которым следует дополнительный допустимый вход, функция возвращает ошибку Msg 9803, State 23.

Примеры

А. Стандартный 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 Table 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".

Следующие шаги