次の方法で共有


try_to_binary 関数

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

fmt に基づいて BINARY にキャストされた expr を返します。または、入力が無効な場合は NULL を返します。

構文

try_to_binary(expr [, fmt] )

引数

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

戻り値

バイナリ。

メモ

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

  • 'HEX'

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

    expr が整形式の 16 進数値の場合、この関数は NULL を返します。 代わりに、to_binary を使用してエラーを返します。

  • 'BASE64'

    exprRFC 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