try_to_binary
函式
適用於: Databricks SQL 預覽 Databricks Runtime 11.3 LTS 和更新版本
expr
根據 傳回轉換成 BINARYfmt
,如果輸入無效,則傳回 NULL。
語法
try_to_binary(expr [, fmt] )
引數
expr
:要轉換的 STRING 運算式。fmt
:描述如何解譯expr
的 STRING 常值。
傳回
BINARY。
備註
如果 fmt
提供,它必須是其中一個(不區分大小寫):
'HEX'
expr
必須是十六進位字串。 每個字元都必須是十六進位數位,而且必須有偶數位數。 結果是十六進位字串的二進位表示法。如果
expr
不是格式正確的十六進位值,函式會傳NULL
回 。 請改用 to_binary 傳回錯誤。'BASE64'
expr
必須是 RFC 4648 •4:base64 (標準) 編碼字串。 結果是已譯碼的二進位數據。'UTF-8'
或'UTF8'
expr
會解譯為UTF-8字串。 結果是字串的二進位表示法。
預設的 fmt
是 'HEX'
。
範例
> SELECT cast(to_binary('537061726B') AS STRING);
Spark
> SELECT cast(to_binary('hello', 'hex') AS STRING);
Error: CONVERSION_INVALID_INPUT
> SELECT cast(try_to_binary('hello', 'hex') AS STRING);
NULL
> SELECT cast(to_binary('537061726B', 'hex') AS STRING);
Spark
> SELECT cast(to_binary('U3Bhcms=', 'base64') AS STRING);
Spark
> SELECT cast(to_binary('U3Bhxcms=', 'base64') AS STRING);
Error: CONVERSION_INVALID_INPUT
> SELECT cast(try_to_binary('U3Bhxcms=', 'base64') AS STRING);
NULL
> SELECT hex(to_binary('서울시(Seoul)', 'UTF-8'));
EC849CEC9AB8EC8B9C2853656F756C29