try_to_binary 함수

적용 대상:검사 '예'로 표시 Databricks SQL 미리 보기 검사 '예'로 표시 Databricks Runtime 11.3 LTS 이상

입력이 유효하지 않으면 fmt를 기준으로 expr 캐스트를 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'

    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