1. 개요
해당 소스는 DB 통계 추출 과정에서 파일 사이즈 관련하여, BYTE,KB,MB,GB,TB,PB 등 단위 환산을 위해 개발된 소스이다.
2. 소스
create or replace function FN_SIZE_CONV(BYTE_SIZE BIGINT) RETURNS VARCHAR(200)
BEGIN
DECLARE RTN_CONV VARCHAR(200);
DECLARE RTN_CONV_UNIT VARCHAR(200);
DECLARE UNIT_BYTE BIGINT;
DECLARE UNIT_KB BIGINT;
DECLARE UNIT_MB BIGINT;
DECLARE UNIT_GB BIGINT;
DECLARE UNIT_TB BIGINT;
DECLARE UNIT_PB BIGINT;
SET UNIT_BYTE = 1024;
SET UNIT_KB = 1024 * 1024;
SET UNIT_MB = 1024 * 1024 * 1024;
SET UNIT_GB = 1024 * 1024 * 1024 * 1024;
SET UNIT_TB = 1024 * 1024 * 1024 * 1024 * 1024;
SET UNIT_PB = 1024 * 1024 * 1024 * 1024 * 1024 * 1024;
CASE WHEN BYTE_SIZE <= UNIT_KB THEN SET RTN_CONV_UNIT = 'BYTE';
WHEN BYTE_SIZE <= UNIT_MB THEN SET RTN_CONV_UNIT = 'KB';
WHEN BYTE_SIZE <= UNIT_GB THEN SET RTN_CONV_UNIT = 'MB';
WHEN BYTE_SIZE <= UNIT_TB THEN SET RTN_CONV_UNIT = 'GB';
WHEN BYTE_SIZE <= UNIT_PB THEN SET RTN_CONV_UNIT = 'TB';
ELSE BEGIN
END;
END CASE;
CASE WHEN BYTE_SIZE <= UNIT_KB THEN SET RTN_CONV = BYTE_SIZE / UNIT_MB;
WHEN BYTE_SIZE <= UNIT_MB THEN SET RTN_CONV = BYTE_SIZE / UNIT_MB;
WHEN BYTE_SIZE <= UNIT_GB THEN SET RTN_CONV = BYTE_SIZE / UNIT_MB;
WHEN BYTE_SIZE <= UNIT_TB THEN SET RTN_CONV = BYTE_SIZE / UNIT_GB;
WHEN BYTE_SIZE <= UNIT_PB THEN SET RTN_CONV = BYTE_SIZE / UNIT_TB;
ELSE BEGIN
END;
END CASE;
SET RTN_CONV = ROUND(RTN_CONV, 2);
IF RTN_CONV = 0 THEN
SET RTN_CONV = '무제한' , RTN_CONV_UNIT = '';
END IF;
RETURN (CONCAT(RTN_CONV, ' ', RTN_CONV_UNIT));
end;
'Programming > 기본 (Baisc)' 카테고리의 다른 글
[JAVA][자바] Nio 이용해서 IO Read & Write (이어쓰기) (0) | 2023.01.14 |
---|---|
[Java][JS] Ajax 바이너리 Base64 업로드 유틸 (0) | 2022.11.20 |
[Windows][L2TP] Windows 10 L2TP VPN 연결 이슈 (0) | 2022.07.28 |
[NODEJS][NPM][YARN][WEBPACK] NodeJS Webpack + Haproxy + Apache Reverse Proxy 구성 (0) | 2022.07.19 |
[개발][권한][메뉴] 권한 및 메뉴 개발 Tip (0) | 2022.07.18 |