try_to_binary
기능
적용 대상: Databricks SQL 미리 보기 Databricks Runtime 11.3 LTS 이상
입력이 유효하지 않으면 expr
를 기준으로 fmt
캐스트를 BINARY로 반환하거나 NULL을 반환합니다.
구문
try_to_binary(expr [, fmt] )
인수
-
expr
: 캐스팅할 STRING 식입니다. -
fmt
:expr
을 해석하는 방법을 설명하는 STRING 리터럴입니다.
반품
BINARY입니다.
주의
fmt
가 제공된 경우 다음 중 하나여야 합니다(대/소문자를 구분하지 않음).
'HEX'
expr
은 16진수 문자열이어야 합니다. 각 문자는 16진수여야 하며 짝수의 숫자가 있어야 합니다. 결과는 16진수 문자열의 이진 표현입니다.expr
이 잘 구성된(Well-Formed) 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