Kategorien:

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

BASE64_ENCODE

Codiert die Eingabe (Zeichenfolge oder Binärwert) mit Base64-Codierung.

Siehe auch:

BASE64_DECODE_BINARY, BASE64_DECODE_STRING

Syntax

BASE64_ENCODE( <input> [ , <max_line_length> ] [ , <alphabet> ] )
Copy

Argumente

Benötigt:

input

Ein Zeichenfolgen- oder Binärausdruck, der codiert werden soll.

Optional:

max_line_length

Eine positive ganze Zahl, die die maximale Anzahl von Zeichen in einer einzelnen Zeile der Ausgabe angibt.

Standardwert: 0 (gibt an, dass keine Zeilenumbrüche eingefügt werden, d. h. die maximale Zeilenlänge ist unendlich)

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

Gibt eine Zeichenfolge zurück (unabhängig davon, ob die Eingabe eine Zeichenfolge oder BINARY war).

Nutzungshinweise

  • Die Zeichen in der Zeichenfolge alphabet werden positionsbezogen analysiert. Um andere Zeichen an der zweiten oder dritten Position der Zeichenfolge anzugeben, müssen Sie alle vorangehenden Zeichen explizit angeben, auch wenn Sie die Standardwerte verwenden möchten.

    Beispiel:

    • +$ gibt den Standardwert (+) für Index 62 und ein anderes Zeichen ($) für Index 63 an. Es wird explizit kein Zeichen zum Auffüllen angegeben, sodass das Standardzeichen (=) verwendet wird.

    • +/% gibt die Standardwerte (+ und /) für Indizes 62 und 63 an und legt ein anderes Zeichen (%) zum Auffüllen fest.

  • Wenn Sie eine alphabet-Zeichenfolge angeben, um den input-Wert zu codieren, muss zum Decodieren des input-Wertes dieselbe Zeichenfolge verwendet werden.

Weitere Informationen zum base64-Format finden Sie unter base64.

Rückgabewerte

Dies gibt eine Zeichenfolge zurück, die nur die Zeichen enthält, die für die BASE64-Codierung verwendet werden.

Beispiele

Codieren einer Zeichenfolge mit Base64:

SELECT BASE64_ENCODE('Snowflake');

----------------------------+
 BASE64_ENCODE('SNOWFLAKE') |
----------------------------+
 U25vd2ZsYWtl               |
----------------------------+
Copy

Codieren einer Zeichenfolge, die Nicht-ASCII-Zeichen enthält, unter Verwendung von Base64 mit „$“ anstelle von „+“ für die Codierung, und Ausgeben der Zeichenfolge mit einer maximalen Zeilenlänge von 32:

SELECT BASE64_ENCODE('Snowflake ❄❄❄ Snowman ☃☃☃',32,'$');

---------------------------------------------------+
 BASE64_ENCODE('SNOWFLAKE ❄❄❄ SNOWMAN ☃☃☃',32,'$') |
---------------------------------------------------+
 U25vd2ZsYWtlIOKdhOKdhOKdhCBTbm93                  |
 bWFuIOKYg$KYg$KYgw==                              |
---------------------------------------------------+
Copy

Dies zeigt ein anderes Beispiel für die Verwendung von BASE64_ENCODE (und auch BASE64_DECODE_STRING):

Erstellen Sie eine Tabelle und Daten:

CREATE OR REPLACE TABLE base64_table (v VARCHAR, base64_string VARCHAR);
INSERT INTO base64_table (v) VALUES ('HELLO');
UPDATE base64_table SET base64_string = BASE64_ENCODE(v);
Copy

Führen Sie nun eine Abfrage mit BASE64_DECODE_STRING aus:

SELECT v, base64_string, BASE64_DECODE_STRING(base64_string) 
    FROM base64_table;
+-------+---------------+-------------------------------------+
| V     | BASE64_STRING | BASE64_DECODE_STRING(BASE64_STRING) |
|-------+---------------+-------------------------------------|
| HELLO | SEVMTE8=      | HELLO                               |
+-------+---------------+-------------------------------------+
Copy