適用於:
Databricks SQL 預覽
Databricks Runtime 11.3 LTS 和更新版本
將expr根據fmt轉換為 BINARY,若輸入無效,則傳回 NULL。
語法
try_to_binary(expr [, fmt] )
引數
-
expr:要轉換的字串表達式。 -
fmt:一個字串常值,用於描述如何解譯expr。
退貨
一個二進位制。
備註
如果 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