次の方法で共有


to_binary 関数

適用対象: check marked yes Databricks SQL プレビュー  のチェックをオン Databricks Runtime 11.3 LTS 以降

fmt に基づいて BINARY にキャストされた expr を返します。

構文

to_binary(expr [, fmt] )

引数

  • expr: キャストする STRING 式。
  • fmt: expr の解釈方法を表現する STRING リテラル。

戻り値

バイナリ。

メモ

fmt が指定された場合、次のいずれかにする必要があります (大文字と小文字を区別しない)。

  • 'HEX'

    expr は 16 進数の文字列にする必要があります。 各文字は 16 進数字でなければならず、桁数は偶数にする必要があります。 結果は、16 進文字列のバイナリ表現になります。

    expr が有効な 16 進文字列でない場合、Azure Databricks は CONVERSION_INVALID_INPUT エラーを返します。 代わりに NULL 値を返すには、try_to_binary を使用します。

  • 'BASE64'

    exprRFC 4648 §4: base64 (標準) でエンコードされた文字列にする必要があります。 結果は、デコードされたバイナリ データです。 RFC 4648 §4 では、base64 文字列の形式が正しくない場合、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