카테고리:

문자열 및 이진 함수 (인코딩/디코딩)

TRY_HEX_DECODE_BINARY

디코딩 중 오류가 발생하면 NULL 값을 반환하는 HEX_DECODE_BINARY 의 특수 버전입니다.

구문

TRY_HEX_DECODE_BINARY(<input>)
Copy

인자

input

16진수만 포함하는 문자열 식입니다. 일반적으로 이 입력 문자열은 HEX_ENCODE 함수를 호출하여 생성됩니다.

반환

BINARY 값으로, 예를 들어 BINARY 형식의 열에 삽입할 수 있는 값입니다.

이는 TRY_HEX_DECODE_BINARY 함수 사용 방법을 보여줍니다(함수는 BINARY 필드 디코딩하기 위해 INSERT 문에서 사용되며, 함수가 SELECT 문에서 사용되지 않음에 유의).

테이블과 데이터를 만듭니다.

CREATE TABLE hex (v VARCHAR, b BINARY);
INSERT INTO hex (v, b)
   SELECT 'ABab', 
     -- Convert string -> hex-encoded string -> binary.
     TRY_HEX_DECODE_BINARY(HEX_ENCODE('ABab'));
Copy

이제 쿼리를 실행하여 데이터를 그대로 검색할 수 있음을 보여줍니다.

SELECT v, b, 
    -- Convert binary -> hex-encoded-string -> string.
    TRY_HEX_DECODE_STRING(TO_VARCHAR(b)) 
  FROM hex;
Copy

출력:

+------+----------+--------------------------------------+
| V    | B        | TRY_HEX_DECODE_STRING(TO_VARCHAR(B)) |
|------+----------+--------------------------------------|
| ABab | 41426162 | ABab                                 |
+------+----------+--------------------------------------+
Copy