카테고리:

변환 함수

TRY_TO_BINARY

TO_BINARY 의 특수 버전으로, 동일 작업을 수행하지만(즉, 입력 식을 이진 값으로 변환), 오류 처리를 지원합니다(즉, 변환을 수행할 수 없는 경우, 오류를 발생시키는 대신 NULL 값을 반환함).

자세한 내용은 다음을 참조하십시오.

구문

TRY_TO_BINARY( <string_expr> [, '<format>'] )
Copy

인자

필수:

string_expr

문자열 식입니다.

선택 사항:

format

변환을 위한 이진 형식: HEX, BASE64 또는 UTF-8(Binary Input and Output 참조). 기본값은 BINARY_INPUT_FORMAT 세션 매개 변수의 값입니다. 이 매개 변수가 설정되지 않은 경우, 기본값은 HEX입니다.

반환

BINARY 형식의 값을 반환합니다.

사용법 노트

  • 문자열 식에서만 작동합니다.

  • format 이 지정되었지만 HEX, BASE64 또는 UTF-8이 아닌 경우, 결과는 NULL 값이 됩니다.

다음은 16진수로 인코딩된 문자열을 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');
Copy

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                   |
+-------+--------------------+------------------------+
Copy