Share via


to_binary 函式

適用於:檢查標示為是 Databricks SQL 預覽 檢查標示為是 Databricks Runtime 11.3 LTS 和更新版本

根據fmtexpr回轉換成 BINARY。

語法

to_binary(expr [, fmt] )

引數

  • expr:要轉換的 STRING 運算式。
  • fmt:描述如何解譯 expr的 STRING 常值。

傳回

BINARY。

備註

如果 fmt 提供,它必須是其中一個(不區分大小寫):

  • 'HEX'

    expr 必須是十六進位字串。 每個字元都必須是十六進位數位,而且必須有偶數位數。 結果是十六進位字串的二進位表示法。

    如果 expr 不是有效的十六進位字串,Azure Databricks 會傳 回CONVERSION_INVALID_INPUT 錯誤。 請改用 try_to_binary 傳回NULL值。

  • 'BASE64'

    expr 必須是 RFC 4648 •4:base64 (標準) 編碼字串。 結果是已譯碼的二進位數據。 在 RFC 4648 ≦4 下,任何格式不正確的 bae64 字串都會導致 CONVERSION_INVALID_INPUT 錯誤。

  • '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