Udostępnij za pomocą


BASE64_DECODE (Transact-SQL)

Dotyczy do:Azure SQL DatabaseSQL analytics endpoint oraz Warehouse in Microsoft FabricSQL database in Microsoft Fabric

BASE64_DECODE Konwertuje wyrażenie varchar zakodowane w formacie base64 na odpowiadające wyrażenie varbinary .

Transact-SQL konwencje składni

Składnia

BASE64_DECODE ( expression )

Arguments

wyrażenie

Wyrażenie typu varchar(n) lub varchar(max).

Typy zwracane

  • varbinary(8000), jeśli dane wejściowe są varchar(n).
  • varbinary(max), jeśli dane wejściowe to varchar(max).
  • Jeśli wyrażenie wejściowe to NULL, dane wyjściowe to NULL.

Uwagi

Alfabet zakodowanego ciągu musi mieć wartość RFC 4648 Table 1 i może zawierać dopełnienie, chociaż dopełnienie nie jest wymagane. Akceptowany jest również bezpieczny alfabet url określony w tabeli RFC 4648 Table 2 . Ta funkcja ignoruje znaki odstępów: \n, , \r\ti .

  • Jeśli dane wejściowe zawierają znaki, które nie znajdują się w standardowych lub bezpiecznych alfabetach adresów URL określonych przez RFC 4648, funkcja zwraca następujący błąd:

    Msg 9803, Level 16, State 20, Line 15, Invalid data for type "Base64Decode"
    
  • Jeśli dane mają prawidłowe znaki, ale niepoprawnie sformatowane, funkcja zwraca błąd Msg 9803, State 21.

  • Jeśli dane wejściowe zawierają więcej niż dwa znaki wypełnienia lub znaki wypełnienia, a następnie dodatkowe prawidłowe dane wejściowe, funkcja zwraca błąd Msg 9803, State 23.

Przykłady

A. BASE64_DECODE w warstwie Standardowa

W poniższym przykładzie ciąg zakodowany w formacie base64 jest dekodowany z powrotem do wartości varbinary.

SELECT BASE64_DECODE('qQ==');

Oto zestaw wyników.

0xA9

B. BASE64_DECODE standardowy ciąg base64

W poniższym przykładzie ciąg jest zdekodowany w formacie base64. Zwróć uwagę, że ciąg zawiera niebezpieczne znaki = adresu URL i /.

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

Oto zestaw wyników.

0xCAFECAFE

C. ciąg BASE64_DECODE varchar url_safe base64

W przeciwieństwie do przykładu B ten przykładowy ciąg base64 został zakodowany przy użyciu tabeli RFC 4648 Table 2 (url_safe), ale można dekodować tak samo jak w przykładzie B.

SELECT BASE64_DECODE('yv7K_g');

Oto zestaw wyników.

0xCAFECAFE

D. BASE64_DECODE varchar zawiera znaki, które nie znajdują się w alfabecie base64

Ten przykład zawiera znaki, które nie są prawidłowymi znakami base64.

SELECT BASE64_DECODE('qQ!!');

Oto zestaw wyników.

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