TRY_TO_BINARY

TRY_TO_BINARY

TO_BINARY의 특수한 버전으로, 동일한 연산(입력 표현식을 이진 값으로 변환)을 수행하지만 오류 처리 지원이 포함돼 있어요 (즉, 변환을 수행할 수 없으면 오류를 발생시키는 대신 NULL 값을 반환).

자세한 내용은 다음 문서를 참고해요:

  • 오류 처리 변환 함수(Error-handling conversion functions)
  • TO_BINARY
  • 이진 입력 및 출력(Binary input and output)

출처: Snowflake TRY_TO_BINARY 함수 문서

본문

구문 (Syntax)

TRY_TO_BINARY(  [, ''] )

인자 (Arguments)

필수:

  • string_expr — 문자열 표현식이에요.

선택:

  • format — 변환을 위한 이진 형식: HEX, BASE64, 또는 UTF-8 (이진 입력 및 출력 문서 참고). 기본값은 BINARY_INPUT_FORMAT 세션 매개변수의 값이에요. 이 매개변수가 설정되지 않으면 기본값은 HEX예요.

반환 값 (Returns)

BINARY 타입의 값을 반환해요.

사용 노트 (Usage Notes)

  • 문자열 표현식에서만 작동해요.
  • format이 지정됐지만 HEX, BASE64, UTF-8이 아니면 결과는 NULL 값이에요.

예제 (Examples)

hex로 인코딩된 문자열을 BINARY 컬럼에 로드할 때 TRY_TO_BINARY 함수를 사용하는 방법을 보여줘요:

테이블을 만들고 채우기:

CREATE TABLE strings (v VARCHAR, hex_encoded_string VARCHAR, b BINARY);
INSERT INTO strings (v) VALUES
    ('01'),
    ('A B'),
    ('Hello'),
    (NULL);
UPDATE strings SET hex_encoded_string = HEX_ENCODE(v);
UPDATE strings SET b = TRY_TO_BINARY(hex_encoded_string, 'HEX');

테이블을 쿼리하며 TRY_TO_BINARY() 호출:

SELECT v, hex_encoded_string, TO_VARCHAR(b, 'UTF-8')
  FROM strings
  ORDER BY v
  ;
+-------+--------------------+------------------------+
| V     | HEX_ENCODED_STRING | TO_VARCHAR(B, 'UTF-8') |
|-------+--------------------+------------------------|
| 01    | 3031               | 01                     |
| A B   | 412042             | A B                    |
| Hello | 48656C6C6F         | Hello                  |
| NULL  | NULL               | NULL                   |
+-------+--------------------+------------------------+

더 알아보기