try_to_binary
関数
適用対象: 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'
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