base64() SQL 함수
base64() SQL 함수
base64() 함수는 이진 데이터(BLOB)를 텍스트로, 또는 그 반대로 바꿔 주는 SQL 함수예요. 실제로는 SQLite에 기본 내장된 함수가 아니라 별도로 불러와야 하는 로더블 확장(loadable extension)으로 구현되어 있답니다.
본문
1. 개요 (Overview)
base64() 함수는 SQLite를 위한 loadable extension으로 구현된 SQL 함수예요. 이 함수는 이진 BLOB를 동등한 RFC 4648 텍스트로 변환하고, RFC 4648 텍스트를 다시 동등한 BLOB로 변환해 줍니다.
base64() 함수는 SQLite 표준의 일부가 아니에요. 반드시 별도의 확장으로 불러와야 합니다. base64()의 소스 코드는 SQLite 소스 트리의 ext/misc/ 폴더에 있는 base64.c 소스 파일에 있어요.
base64() 함수는 SQLite 라이브러리의 표준 빌드에는 포함되지 않지만, CLI에서는 기본으로 불러와집니다. 이것은 CLI가 표준 SQLite 라이브러리에서 제공하는 것보다 더 다양한 확장을 불러오는 전형적인 모습이에요.
2. 특징 (Features)
- base64() 함수는 항상 인자를 하나만 받아요.
- base64()의 인자가 BLOB이면, 반환값은 그 BLOB를 RFC 4648 방식으로 인코딩한 TEXT예요.
- base64()의 인자가 base64 TEXT면, 반환값은 그 base64 TEXT에 해당하는 이진 데이터인 BLOB이에요.
- base64()의 인자가 NULL이면 NULL이 반환돼요.
- base64()의 인자가 TEXT, BLOB, NULL 외의 것이라면 오류가 발생해요.
- 인자가 TEXT라면 앞뒤의 공백은 무시돼요.
- 인자가 base64처럼 보이는 접두어를 가지지만 base64가 아닌 문자를 포함한 TEXT라면, 입력에서 가능한 한 많이 BLOB로 변환해서 그 BLOB를 반환해요.
- base64() 함수는 표준 RFC 4648 알파벳을 사용해요: "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/".