- 类别:
TRY_TO_BINARY¶
TO_BINARY 的特殊版本,它执行相同的操作(即将输入表达式转换为二进制值),但支持错误处理(即,如果无法执行转换,它将返回 NULL 值而不是引发错误)。
有关更多信息,请参阅:
语法¶
TRY_TO_BINARY( <string_expr> [, '<format>'] )
实参¶
必填:
string_expr
字符串表达式。
可选:
format
用于转换的二进制格式:HEX、BASE64 或 UTF-8(请参阅 Binary Input and Output)。默认值为 BINARY_INPUT_FORMAT 会话参数的值。如果未设置此参数,则默认值为 HEX。
返回¶
返回类型 BINARY 的值。
使用说明¶
仅适用于字符串表达式。
如果指定了
format
但不是 HEX、BASE64 或 UTF-8,则结果将是一个 NULL 值。
示例¶
该示例显示在将十六进制编码的字符串加载到 BINARY 列中时如何使用 TRY_TO_BINARY
函数:
创建并填写表:
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');查询表,调用 TRY_TO_BINARY():
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 | +-------+--------------------+------------------------+