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


BASE64_DECODE (Transact-SQL)

Относится к:Azure SQL Database SQL analytics endpoint и склад в Microsoft FabricSQL база данных SQL в Microsoft Fabric

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

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

Синтаксис

BASE64_DECODE ( expression )

Аргументы

выражение

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

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

  • varbinary(8000), если входные данные — varchar(n).
  • 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

B. BASE64_DECODE стандартную строку base64

В следующем примере строка декодирована base64. Обратите внимание, что строка содержит небезопасные символы = URL-адреса и /.

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

Вот результирующий набор.

0xCAFECAFE

В. строка BASE64_DECODE varchar url_safe base64

В отличие от примера B, эта строка base64 была закодирована с помощью RFC 4648 Table 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".