Kategorien:

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

TRY_BASE64_DECODE_BINARY

Eine spezielle Version von BASE64_DECODE_BINARY, die einen NULL-Wert zurückgibt, wenn während der Dekodierung ein Fehler auftritt.

Syntax

TRY_BASE64_DECODE_BINARY(<input> [, <alphabet>])

Argumente

Eingabe

Die base64-basierte Zeichenfolge, die in den Datentyp BINARY konvertiert 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

Dies gibt einen BINARY-Wert zurück. Der Wert kann beispielsweise in eine Spalte vom Typ BINARY eingefügt werden.

Nutzungshinweise

Weitere Informationen zum base64-Format finden Sie unter Base64.

Beispiele

Hier wird die Verwendung dieser Funktion TRY_BASE64_DECODE_BINARY gezeigt. Die Funktion wird in der INSERT-Anweisung verwendet, um eine base64-codierte Zeichenfolge in ein BINARY-Feld zu decodieren. Die Funktion wird in der SELECT-Anweisung nicht verwendet.

Erstellen Sie eine Tabelle, und fügen Sie Daten ein:

CREATE TABLE base64 (v VARCHAR, base64_encoded_varchar VARCHAR, b BINARY);
INSERT INTO base64 (v, base64_encoded_varchar, b)
   SELECT 'HELP', BASE64_ENCODE('HELP'),
      TRY_BASE64_DECODE_BINARY(BASE64_ENCODE('HELP'));

Führen Sie nun eine Abfrage aus, um zu zeigen, dass wir die Daten unverändert abrufen können:

SELECT v, base64_encoded_varchar, 
    -- Convert binary -> base64-encoded-string
    TO_VARCHAR(b, 'BASE64'),
    -- Convert binary back to original value
    TO_VARCHAR(b, 'UTF-8')
  FROM base64;
+------+------------------------+-------------------------+------------------------+
| V    | BASE64_ENCODED_VARCHAR | TO_VARCHAR(B, 'BASE64') | TO_VARCHAR(B, 'UTF-8') |
|------+------------------------+-------------------------+------------------------|
| HELP | SEVMUA==               | SEVMUA==                | HELP                   |
+------+------------------------+-------------------------+------------------------+