Бөлісу құралы:


BASE64_DECODE (Transact-SQL)

Применимо к:Конечная точка аналитики SQLServer 2025 (17.x) Базы данныхSQL Azure в Microsoft Fabric и хранилище вбазе данных SQL Microsoft Fabric в 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, в этом примере используется RFC 4648 Table 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".