BASE64_ENCODE
BASE64_ENCODE
입력(문자열 또는 이진)을 Base64 인코딩을 사용해 인코딩해요.
본문
구문
BASE64_ENCODE( <input> [ , <max_line_length> ] [ , <alphabet> ] )
인자
필수:
- 인코딩할 문자열 또는 이진 표현식이에요.
선택:
- 출력의 단일 줄에서 최대 문자 수를 지정하는 양의 정수예요. 기본값: 0(줄 바꿈이 삽입되지 않음을 지정, 즉 최대 줄 길이가 무한).
- 최대 세 개의 ASCII 문자로 구성된 문자열이에요.
- 문자열의 처음 두 문자는 입력을 인코딩할 때 사용된 알파벳의 마지막 두 문자(인덱스 62와 63)를 지정해요.
- A~Z(인덱스 0-25)
- a~z(인덱스 26-51)
- 0~9(인덱스 52-61)
- +와 /(인덱스 62, 63)
- 기본값:
+와/
- 문자열의 세 번째 문자는 패딩에 사용되는 문자를 지정해요. 기본값:
=
- 문자열의 처음 두 문자는 입력을 인코딩할 때 사용된 알파벳의 마지막 두 문자(인덱스 62와 63)를 지정해요.
반환 값
문자열을 반환해요(입력이 문자열이든 BINARY든 관계없이).
사용상 주의사항
- 알파벳 문자열의 문자는 위치적으로 구문 분석돼요. 문자열의 두 번째 또는 세 번째 위치에서 다른 문자를 지정하려면 기본값을 사용하려는 경우에도 앞선 모든 문자를 명시적으로 지정해야 해요.
- 예:
+$는 인덱스 62에 기본값(+), 인덱스 63에 다른 문자($)를 지정해요. 패딩에 대해 명시적으로 지정된 문자가 없으므로 기본 문자(=)가 사용돼요. +/%는 인덱스 62와 63에 기본값(+와/)을 지정하고, 패딩에 대해 다른 문자(%)를 지정해요.
- 예:
- 입력을 인코딩하기 위해 알파벳 문자열을 지정했다면, 입력을 디코딩할 때도 같은 문자열을 사용해야 해요.
base64 형식에 대한 자세한 내용은 base64를 참고해요.
반환 값
base64 인코딩에 사용되는 문자만 포함하는 문자열을 반환해요.
예시
문자열을 Base64로 인코딩해요.
SELECT BASE64_ENCODE('Snowflake');
----------------------------+
BASE64_ENCODE('SNOWFLAKE') |
----------------------------+
U25vd2ZsYWtl |
----------------------------+
비-ASCII 문자를 포함하는 문자열을 '$를 + 대신 인코딩에 사용하여 Base64로 인코딩하고, 최대 줄 길이 32로 문자열을 출력해요.
SELECT BASE64_ENCODE('Snowflake ❄❄❄ Snowman ☃☃☃',32,'$');
---------------------------------------------------+
BASE64_ENCODE('SNOWFLAKE ❄❄❄ SNOWMAN ☃☃☃',32,'$') |
---------------------------------------------------+
U25vd2ZsYWtlIOKdhOKdhOKdhCBTbm93 |
bWFuIOKYg$KYg$KYgw== |
---------------------------------------------------+
이 예시는 BASE64_ENCODE(그리고 BASE64_DECODE_STRING)를 사용하는 또 다른 예시를 보여줘요.
테이블과 데이터를 만들어요.
CREATE OR REPLACE TABLE base64_table (v VARCHAR, base64_string VARCHAR);
INSERT INTO base64_table (v) VALUES ('HELLO');
UPDATE base64_table SET base64_string = BASE64_ENCODE(v);
이제 BASE64_DECODE_STRING을 사용해 쿼리를 실행해요.
SELECT v, base64_string, BASE64_DECODE_STRING(base64_string)
FROM base64_table;
+-------+---------------+-------------------------------------+
| V | BASE64_STRING | BASE64_DECODE_STRING(BASE64_STRING) |
|-------+---------------+-------------------------------------|
| HELLO | SEVMTE8= | HELLO |
+-------+---------------+-------------------------------------+