TRY_BASE64_DECODE_STRING

TRY_BASE64_DECODE_STRING

디코딩 중 오류가 발생하면 NULL 값을 반환하는 BASE64_DECODE_STRING의 특수 버전이에요. BASE64_DECODE_STRING과 TRY_BASE64_DECODE_STRING은 BASE64_ENCODE의 "상호적"(또는 "역") 함수예요.

출처: Snowflake SQL Reference - TRY_BASE64_DECODE_STRING

본문

구문

TRY_BASE64_DECODE_STRING(<input> [, <alphabet>])

인자

  • 일반 문자열로 디코딩할 base64로 인코딩된 문자열이에요.
  • 최대 세 개의 ASCII 문자로 구성된 문자열이에요.
    • 문자열의 처음 두 문자는 입력을 인코딩할 때 사용된 알파벳의 마지막 두 문자(인덱스 62와 63)를 지정해요.
      • A~Z(인덱스 0-25)
      • a~z(인덱스 26-51)
      • 0~9(인덱스 52-61)
      • +와 /(인덱스 62, 63)
      • 기본값: +와 /
    • 문자열의 세 번째 문자는 패딩에 사용되는 문자를 지정해요. 기본값: =

반환 값

문자열이에요.

사용상 주의사항

base64 형식에 대한 자세한 내용은 base64를 참고해요.

예시

이 예시는 함수 사용법을 보여주고 TRY_BASE64_DECODE_STRING이 BASE64_ENCODE의 역이라는 것을 보여줘요.

SELECT TRY_BASE64_DECODE_STRING(BASE64_ENCODE('HELLO'));
+--------------------------------------------------+
| TRY_BASE64_DECODE_STRING(BASE64_ENCODE('HELLO')) |
|--------------------------------------------------|
| HELLO                                            |
+--------------------------------------------------+

이 예시는 더 현실적인 예시를 보여줘요.

테이블과 데이터를 만들어요.

CREATE TABLE base64 (v VARCHAR, base64_string VARCHAR, garbage VARCHAR);
INSERT INTO base64 (v, base64_string, garbage) 
  SELECT 'HELLO', BASE64_ENCODE('HELLO'), '127';

TRY_BASE64_DECODE_STRING 함수를 사용해 데이터를 조회해요.

SELECT v, base64_string, TRY_BASE64_DECODE_STRING(base64_string), TRY_BASE64_DECODE_STRING(garbage) FROM base64;
+-------+---------------+-----------------------------------------+-----------------------------------+
| V     | BASE64_STRING | TRY_BASE64_DECODE_STRING(BASE64_STRING) | TRY_BASE64_DECODE_STRING(GARBAGE) |
|-------+---------------+-----------------------------------------+-----------------------------------|
| HELLO | SEVMTE8=      | HELLO                                   | NULL                              |
+-------+---------------+-----------------------------------------+-----------------------------------+

더 알아보기