Kategorien:

Zeichenfolgen- und Binärfunktionen (Verschlüsseln/Entschlüsseln)

TRY_BASE64_DECODE_STRING

Eine spezielle Version von BASE64_DECODE_STRING, die einen NULL-Wert zurückgibt, wenn bei der Decodierung ein Fehler auftritt.

BASE64_DECODE_STRING und TRY_BASE64_DECODE_STRING sind reziproke oder umgekehrte Funktionen von BASE64_ENCODE.

Syntax

TRY_BASE64_DECODE_STRING(<input> [, <alphabet>])
Copy

Argumente

input

Die base64-codierte Zeichenfolge, die in eine normale Zeichenfolge decodiert werden soll.

alphabet

Eine Zeichenfolge, die aus bis zu drei ASCII-Zeichen besteht:

  • Die ersten beiden Zeichen in der Zeichenfolge geben die letzten beiden Zeichen (Indizes 62 und 63) im Alphabet an, die zur Codierung der Eingabe verwendet werden:

    • A bis Z (Indizes 0–25)

    • a bis z (Indizes 26–51)

    • 0 bis 9 (Indizes 52–61)

    • + und / (Indizes 62, 63)

    Standardwerte: + und /

  • Das dritte Zeichen in der Zeichenfolge gibt das Zeichen an, das zum Auffüllen verwendet wird.

    Standard: =

Rückgabewerte

Eine Zeichenfolge.

Nutzungshinweise

Weitere Informationen zum base64-Format finden Sie unter base64.

Beispiele

Hier wird die Verwendung dieser Funktion gezeigt und demonstriert, dass TRY_BASE64_DECODE_STRING die Umkehrung von BASE64_ENCODE ist:

SELECT TRY_BASE64_DECODE_STRING(BASE64_ENCODE('HELLO'));
+--------------------------------------------------+
| TRY_BASE64_DECODE_STRING(BASE64_ENCODE('HELLO')) |
|--------------------------------------------------|
| HELLO                                            |
+--------------------------------------------------+
Copy

Dies zeigt ein realistischeres Beispiel:

Erstellen Sie eine Tabelle und Daten:

CREATE TABLE base64 (v VARCHAR, base64_string VARCHAR, garbage VARCHAR);
INSERT INTO base64 (v, base64_string, garbage) 
  SELECT 'HELLO', BASE64_ENCODE('HELLO'), '127';
Copy

Fragen Sie die Daten mit der Funktion TRY_BASE64_DECODE_STRING ab:

SELECT v, base64_string, TRY_BASE64_DECODE_STRING(base64_string), TRY_BASE64_DECODE_STRING(garbage) FROM base64;
+-------+---------------+-----------------------------------------+-----------------------------------+
| V     | BASE64_STRING | TRY_BASE64_DECODE_STRING(BASE64_STRING) | TRY_BASE64_DECODE_STRING(GARBAGE) |
|-------+---------------+-----------------------------------------+-----------------------------------|
| HELLO | SEVMTE8=      | HELLO                                   | NULL                              |
+-------+---------------+-----------------------------------------+-----------------------------------+
Copy