카테고리:

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

TRY_BASE64_DECODE_BINARY

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

구문

TRY_BASE64_DECODE_BINARY(<input> [, <alphabet>])
Copy

인자

input

BINARY 데이터 타입으로 변환할, base64로 인코딩된 문자열입니다.

alphabet

최대 3개의 ASCII 문자로 구성된 문자열:

  • 문자열의 처음 두 문자는 입력을 인코딩하는 데 사용되는 알파벳의 마지막 두 문자(인덱스 62 및 63)를 지정합니다.

    • A - Z (인덱스 0-25).

    • a - z (인덱스 26-51).

    • 0 - 9 (인덱스 52-61).

    • +/ (인덱스 62, 63).

    기본값: +/

  • 문자열의 세 번째 문자는 패딩에 사용되는 문자를 지정합니다.

    기본값: =

반환

이는 BINARY 값을 반환합니다. 예를 들어, 값은 BINARY 형식의 열에 삽입될 수 있습니다.

사용법 노트

base64 형식에 대한 자세한 내용은 base64 를 참조하십시오.

이는 함수 TRY_BASE64_DECODE_BINARY 를 사용하는 방법을 보여줍니다. 이 함수는 base64로 인코딩된 문자열을 BINARY 필드 디코딩하기 위해 INSERT 문에서 사용됩니다. 함수는 SELECT 에서 사용되지 않습니다.

테이블을 만들고 데이터를 삽입합니다.

CREATE TABLE base64 (v VARCHAR, base64_encoded_varchar VARCHAR, b BINARY);
INSERT INTO base64 (v, base64_encoded_varchar, b)
   SELECT 'HELP', BASE64_ENCODE('HELP'),
      TRY_BASE64_DECODE_BINARY(BASE64_ENCODE('HELP'));
Copy

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

SELECT v, base64_encoded_varchar, 
    -- Convert binary -> base64-encoded-string
    TO_VARCHAR(b, 'BASE64'),
    -- Convert binary back to original value
    TO_VARCHAR(b, 'UTF-8')
  FROM base64;
+------+------------------------+-------------------------+------------------------+
| V    | BASE64_ENCODED_VARCHAR | TO_VARCHAR(B, 'BASE64') | TO_VARCHAR(B, 'UTF-8') |
|------+------------------------+-------------------------+------------------------|
| HELP | SEVMUA==               | SEVMUA==                | HELP                   |
+------+------------------------+-------------------------+------------------------+
Copy