💻 IT/📌 DataBase

[DB/SQL] 데이터베이스 한글 바이트 확인 | ORACLE 한글 | 한글 Byte | DB 한글 확인 | DB 한글 몇바이트 | 오라클 한글 바이트

GODSU 2024. 8. 14. 13:00
반응형

 

최근에 데이터 입력을 하다가 한글 1000자 이상을 못넣는 현상을 발견했어요

DB 확인해보니 컬럼 값이 4000Byte가 MAX로 되어있더라고요 ~_~

 

한글은 2Byte인줄 알았는데 저희회사에서는 3Byte로 넣고 있더라구요!

그래서 요번에는 DB마다 캐릭터 셋 확인하는 방법을 알려드리겠습니다~

 

SELECT 
        *
 FROM NLS_DATABASE_PARAMETERS
WHERE PARAMETER = 'NLS_CHARACTERSET'
       OR PARAMETER = 'NLS_NCHAR_CHARACTERSET'

 

 

해당 쿼리르 조회해보시면 캐릭터 셋마다 저장 속성을 볼 수 있는데요!

 

[한글을 지원하는 캐릭터셋]

1. KO16KSC5601

2. KO16MSWIN949

3. AL32UTF8

4. UTF8

 

[KO16KSC5601]

4888자의 한자, 히라카나, 카타카나, 영문 및 기호 지원, 한글 2바이트

 

[KO16MSWIN949]

WINDOW 949 마이크로사의 한클코드 페이지

한글 조합으로 표현할 수 있는 8822자

 

[AL32UTF8]

AL32UTF8은 오라클에서 사용하는 데이터베이스 캐릭터셋이고 유니코드를 지원합니다. 즉, 모든 CHAR, VARCHAR2, LONG, CLOB 그리고 NCHAR, NVARCHAR2, NCLOB 데이터 타입이 "유니코드"입니다. 

- 한글 한자당 3Byte

- AL32UTF8는 한글 11,172자이며 UTF8과 다른점은 내셔널 캐릭터 셋으로 설정 불가능

 

[AL16UTF16]

- KO16KSC5601는 한글 완성형 2,350자지원 글자당 2바이트
- KO16MSWIN949는 KO16KSC5601+확장 8822자 지원, 글자당 2바이트
- UTF8는 한글 11,172자 글자당 3바이트

 

 

감사합니다.

반응형