- Kategorien:
TRY_TO_BINARY¶
Eine spezielle Version von TO_BINARY, die die gleiche Operation ausführt (d. h. einen Eingabeausdruck in einen Binärwert konvertiert), aber mit Unterstützung für die Fehlerbehandlung (d. h. wenn die Konvertierung nicht durchgeführt werden kann, gibt sie einen NULL-Wert zurück, anstatt einen Fehler zu erzeugen).
Weitere Informationen dazu finden Sie unter:
Syntax¶
TRY_TO_BINARY( <string_expr> [, '<format>'] )
Argumente¶
Benötigt:
string_expr
Ein Zeichenfolgenausdruck.
Optional:
format
Das Binärformat für die Konvertierung: HEX, BASE64 oder UTF-8 (siehe Binary Input and Output). Der Standardwert ist der Wert des Sitzungsparameters BINARY_INPUT_FORMAT. Wenn dieser Parameter nicht festgelegt ist, ist der Standardwert HEX.
Rückgabewerte¶
Gibt einen Wert vom Typ BINARY zurück.
Nutzungshinweise¶
Funktioniert nur bei Zeichenfolgenausdrücken.
Wenn
format
angegeben ist, jedoch nicht HEX, BASE64 oder UTF-8 lautet, ist das Ergebnis ein NULL-Wert.
Beispiele¶
Hier wird gezeigt, wie Sie die Funktion TRY_TO_BINARY
verwenden, um hexadezimal-codierte Zeichenfolgen in eine BINARY-Spalte laden:
Erstellen Sie eine Tabelle, und füllen Sie diese:
CREATE TABLE strings (v VARCHAR, hex_encoded_string VARCHAR, b BINARY); INSERT INTO strings (v) VALUES ('01'), ('A B'), ('Hello'), (NULL); UPDATE strings SET hex_encoded_string = HEX_ENCODE(v); UPDATE strings SET b = TRY_TO_BINARY(hex_encoded_string, 'HEX');Fragen Sie die Tabelle ab, indem Sie TRY_TO_BINARY() aufrufen:
SELECT v, hex_encoded_string, TO_VARCHAR(b, 'UTF-8') FROM strings ORDER BY v ; +-------+--------------------+------------------------+ | V | HEX_ENCODED_STRING | TO_VARCHAR(B, 'UTF-8') | |-------+--------------------+------------------------| | 01 | 3031 | 01 | | A B | 412042 | A B | | Hello | 48656C6C6F | Hello | | NULL | NULL | NULL | +-------+--------------------+------------------------+