Comparteix via


BASE64_DECODE (Transact-SQL)

Se aplica a: Sql Server 2025 (17.x) Punto de conexión de análisis sql de Azure SQL Database de Azure SQL DatabasedeAzure SQL Databaseen Microsoft Fabric y Almacenamiento en labase de datos SQL de Microsoft Fabric en Microsoft Fabric

BASE64_DECODE convierte una expresión varchar codificada en Base64 en la expresión varbinary correspondiente.

Convenciones de sintaxis de Transact-SQL

Sintaxis

BASE64_DECODE ( expression )

Argumentos

expression

Una expresión del tipo varchar(n) o varchar(max).

Tipos de valores devueltos

  • varbinary(8000) si la entrada es varchar(n).
  • varbinary(max) si la entrada es varchar(max).
  • Si la expresión de entrada es NULL, la salida es NULL.

Observaciones

El alfabeto de la cadena codificada debe ser el de la Tabla 1 de la RFC 4648 y podría incluir relleno, aunque no es necesario relleno. También se acepta el alfabeto seguro para direcciones URL que se especifica en RFC 4648, tabla 2. Esta función omite los caracteres de espacio en blanco: \n, \r, \t y .

  • Cuando la entrada contiene caracteres que no están dentro de los alfabetos estándar o seguros de URL especificados por la RFC 4648, la función devuelve el siguiente error:

    Msg 9803, Level 16, State 20, Line 15, Invalid data for type "Base64Decode"
    
  • Si los datos tienen caracteres válidos pero tienen un formato incorrecto, la función devuelve el error Msg 9803, State 21.

  • Si la entrada contiene más de dos caracteres de relleno o caracteres de relleno seguidos de una entrada válida adicional, la función devuelve el error Msg 9803, State 23.

Ejemplos

A. BASE64_DECODE estándar

En el ejemplo siguiente, la cadena codificada en Base64 se descodifica de nuevo en varbinary.

SELECT BASE64_DECODE('qQ==');

Este es el conjunto de resultados.

0xA9

B. BASE64_DECODE una cadena Base64 estándar

En el ejemplo siguiente, la cadena está descodificada en Base64. Tenga en cuenta que la cadena contiene caracteres = y /.

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

Este es el conjunto de resultados.

0xCAFECAFE

C. cadena BASE64_DECODE varchar url_safe Base64

A diferencia del ejemplo B, en este ejemplo se usa rfC 4648 tabla 2 (url_safe) para codificar la cadena base64. Sin embargo, puede descodificarlo de la misma manera que el ejemplo B.

SELECT BASE64_DECODE('yv7K_g');

Este es el conjunto de resultados.

0xCAFECAFE

D. BASE64_DECODE varchar contiene caracteres no en el alfabeto Base64

Este ejemplo contiene caracteres que no son caracteres válidos en Base64.

SELECT BASE64_DECODE('qQ!!');

Este es el conjunto de resultados.

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