Compartilhar via


BASE64_DECODE (Transact-SQL)

Aplica-se a:Azure SQL DatabaseSQL Analytics endpoint e Warehouse no Microsoft FabricSQL Database no Microsoft Fabric

BASE64_DECODE converte uma expressão varchar codificada em base64 na expressão varbinary correspondente.

Convenções de sintaxe de Transact-SQL

Sintaxe

BASE64_DECODE ( expression )

Argumentos

expressão

Uma expressão do tipo varchar(n) ou varchar(max).

Tipos de retorno

  • varbinary(8000) se a entrada for varchar(n).
  • varbinary(max) se a entrada for varchar(max).
  • Se a expressão de entrada for NULL, a saída será NULL.

Comentários

O alfabeto da cadeia de caracteres codificada deve ser o da Tabela 4648 RFC 1 e pode incluir preenchimento, embora o preenchimento não seja necessário. O alfabeto seguro da URL especificada no RFC 4648 Tabela 2 também é aceito. Essa função ignora caracteres de espaço em branco: \n, \r, \t e .

  • Quando a entrada contém caracteres não contidos nos alfabetos padrão ou seguros de URL especificados pelo RFC 4648, a função retorna o seguinte erro:

    Msg 9803, Level 16, State 20, Line 15, Invalid data for type "Base64Decode"
    
  • Se os dados tiverem caracteres válidos, mas formatados incorretamente, a função retornará o erro Msg 9803, State 21.

  • Se a entrada contiver mais de dois caracteres de preenchimento ou caracteres de preenchimento seguidos de entrada extra válida, a função retornará o erro Msg 9803, State 23.

Exemplos

a. Padrão BASE64_DECODE

No exemplo a seguir, a cadeia de caracteres codificada em base64 é decodificada novamente em varbinary.

SELECT BASE64_DECODE('qQ==');

Veja a seguir o conjunto de resultados.

0xA9

B. BASE64_DECODE uma cadeia de caracteres base64 padrão

No exemplo a seguir, a cadeia de caracteres é decodificada em base64. Observe que a cadeia de caracteres contém caracteres desprotegidos de URL = e /.

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

Veja a seguir o conjunto de resultados.

0xCAFECAFE

C. Cadeia de caracteres base64 BASE64_DECODE varchar url_safe

Ao contrário do exemplo B, esta cadeia de caracteres base64 de exemplo foi codificada usando a Tabela RFC 4648 2 (url_safe), mas pode ser decodificada da mesma maneira que o exemplo B.

SELECT BASE64_DECODE('yv7K_g');

Veja a seguir o conjunto de resultados.

0xCAFECAFE

D. O varchar BASE64_DECODE contém caracteres que não estão no alfabeto base64

Este exemplo contém caracteres que não são caracteres base64 válidos.

SELECT BASE64_DECODE('qQ!!');

Veja a seguir o conjunto de resultados.

Msg 9803, Level 16, State 20, Line 223
Invalid data for type "Base64Decode".