DB

[PostgreSQL] 쿼리 문자열을 LENGTH(컬럼명) 가져왔는데, 바이트로 보는 방법(OCTET_LENGTH)

LENGTH()문자 개수 (char length)

바이트 길이OCTET_LENGTH()

바이트 길이 구하기

SELECT OCTET_LENGTH(컬럼명)
FROM 테이블명;

예시 비교

SELECT 
LENGTH('ABC') AS char_len,
OCTET_LENGTH('ABC') AS byte_len;

결과

char_len = 3
byte_len = 3

SELECT 
LENGTH('한글') AS char_len,
OCTET_LENGTH('한글') AS byte_len;

결과 (UTF-8 기준)

char_len = 2
byte_len = 6 -- 한글 1글자 = 3바이트

컬럼 기준 실사용

SELECT 
컬럼명,
LENGTH(컬럼명) AS char_length,
OCTET_LENGTH(컬럼명) AS byte_length
FROM 테이블명;

실무 포인트

  • 한글/이모지 포함 데이터면 반드시 OCTET_LENGTH 사용해야 정확
  • DB 저장 제한이 BYTE 기준이면 무조건 이걸로 체크
  • VARCHAR(20) → 문자 기준
    BYTE 제한은 별도 체크 필요

byte 기준 필터링 (예: 100byte 이상)

SELECT *
FROM 테이블명
WHERE OCTET_LENGTH(컬럼명) > 100;

[더 보기]

[PostgreSQL] 특정 컬럼명을 사용하는 모든 테이블 찾는 쿼리

Hi, I’m 관리자