Dela via


BASE64_DECODE (Transact-SQL)

Gäller för:Azure SQL DatabaseSQL-analysslutpunkt och lager i Microsoft Fabric

BASE64_DECODE konverterar ett base64-kodat varchar-uttryck till motsvarande varbinary-uttryck .

Transact-SQL syntaxkonventioner

Syntax

BASE64_DECODE ( expression )

Arguments

uttryck

Ett uttryck av typen varchar(n) eller varchar(max).

Returtyper

  • varbinary(8000) om indata är varchar(n).
  • varbinary(max) om indata är varchar(max).
  • Om indatauttrycket är NULLär NULLutdata .

Anmärkningar

Den kodade strängens alfabet måste vara det för RFC 4648 Tabell 1 och kan innehålla utfyllnad, även om utfyllnad inte krävs. Det URL-säkra alfabet som anges i RFC 4648 Tabell 2 godkänns också. Den här funktionen ignorerar blankstegstecken: \n, \r, \toch .

  • När indata innehåller tecken som inte finns i standard- eller URL-säkra alfabet som anges av RFC 4648 returnerar funktionen följande fel:

    Msg 9803, Level 16, State 20, Line 15, Invalid data for type "Base64Decode"
    
  • Om data har giltiga tecken, men är felaktigt formaterade, returnerar funktionen felet Msg 9803, State 21.

  • Om indata innehåller fler än två utfyllnadstecken eller utfyllnadstecken följt av extra giltiga indata returnerar funktionen felet Msg 9803, State 23.

Examples

A. Standard BASE64_DECODE

I följande exempel avkodas den base64-kodade strängen tillbaka till varbinary.

SELECT BASE64_DECODE('qQ==');

Här är resultatet.

0xA9

B. BASE64_DECODE en standardbas64-sträng

I följande exempel avkodas strängen base64. Observera att strängen innehåller URL-osäkra tecken = och /.

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

Här är resultatet.

0xCAFECAFE

C. BASE64_DECODE varchar url_safe base64-sträng

Till skillnad från exempel B kodades den här base64-exempelsträngen med RFC 4648 Tabell 2 (url_safe), men kan avkodas på samma sätt som exempel B.

SELECT BASE64_DECODE('yv7K_g');

Här är resultatet.

0xCAFECAFE

D. BASE64_DECODE varchar innehåller tecken som inte finns i base64-alfabetet

Det här exemplet innehåller tecken som inte är giltiga base64-tecken.

SELECT BASE64_DECODE('qQ!!');

Här är resultatet.

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