TRY_HEX_DECODE_STRING
TRY_HEX_DECODE_STRING
HEX_DECODE_STRING의 특수 버전으로, 디코딩 중 오류가 발생하면 NULL을 반환하는 함수예요. 실패를 오류로 처리하지 않고 넘어가고 싶을 때 씁니다.
본문
TRY_HEX_DECODE_STRING(<input>)
<input>
16진수로 인코딩된 문자열 표현식이에요. 보통 HEX_ENCODE를 호출해 만든 입력이죠.
반환되는 값은 문자열(VARCHAR)이에요.
예시 — 테이블과 데이터를 만들고, 올바른 헥스 문자열과 잘못된 값에 각각 함수를 적용해 볼게요.
CREATE TABLE hex (v VARCHAR, hex_string VARCHAR, garbage VARCHAR);
INSERT INTO hex (v, hex_string, garbage)
SELECT 'AaBb', HEX_ENCODE('AaBb'), '127';
SELECT v, hex_string, TRY_HEX_DECODE_STRING(hex_string), TRY_HEX_DECODE_STRING(garbage) FROM hex;
+------+------------+-----------------------------------+--------------------------------+
| V | HEX_STRING | TRY_HEX_DECODE_STRING(HEX_STRING) | TRY_HEX_DECODE_STRING(GARBAGE) |
|------+------------+-----------------------------------+--------------------------------|
| AaBb | 41614262 | AaBb | NULL |
+------+------------+-----------------------------------+--------------------------------+
잘못된 입력(garbage)에 대해서는 오류 대신 NULL이 나오는 걸 확인할 수 있어요.