현재 데이터베이스 문자셋 확인

현재 데이터베이스가 어떤 문자셋을 사용하고 있는지 확인하려면 다음 SQL을 실행합니다.

SELECT parameter, value
FROM nls_database_parameters
WHERE parameter LIKE 'NLS_CHARACTERSET'
   OR parameter LIKE 'NLS_NCHAR_CHARACTERSET';

출력 예시

PARAMETER VALUE
NLS_CHARACTERSET AL32UTF8
NLS_NCHAR_CHARACTERSET AL16UTF16

AL16UTF16 vs AL32UTF8 차이점

구분 AL16UTF16 AL32UTF8
인코딩 방식 UTF-16 (Fixed 2-byte or 4-byte) UTF-8 (Variable 1~4 bytes)
문자 단위 16-bit (2-byte) 고정 길이 8-bit (1~4 byte) 가변 길이
저장 공간 대부분의 문자 2바이트, 일부는 4바이트 사용 영어 1바이트, 한글·중국어 3바이트, 특수문자 최대 4바이트
사용 대상 NCHAR, NVARCHAR2, NCLOB (NLS_NCHAR_CHARACTERSET) VARCHAR2, CLOB, CHAR (NLS_CHARACTERSET)
국제 표준 UTF-16 표준 (Windows 기본 인코딩) UTF-8 표준 (웹과 글로벌 환경에서 가장 널리 사용)
성능 다국어 처리 성능 우수 (문자 길이 일정) 저장 공간 효율적, 네트워크 전송 최적화

Oracle 문자열 데이터 타입 비교표

데이터 타입 길이 특성 유니코드 지원 공백 채움 여부 최대 길이 주요 사용 사례
CHAR(n) 고정 길이 X O (공백으로 채움) 2000 BYTE 고정 길이 문자열 (예: 성별 코드 'M', 'F')
VARCHAR2(n) 가변 길이 X X 4000 BYTE 일반적인 문자열 데이터 저장
NCHAR(n) 고정 길이 O O (공백으로 채움) 2000 BYTE 다국어(유니코드) 지원이 필요한 고정 길이 데이터
NVARCHAR2(n) 가변 길이 O X 4000 BYTE 다국어(유니코드) 지원이 필요한 가변 길이 데이터

비교 예제 결과

데이터 타입 저장 값 실제 길이 (LENGTH) 공백 포함 여부
CHAR(10) 'Oracle' 10 O (공백 포함)
VARCHAR2(10) 'Oracle' 6 X
NCHAR(10) N'오라클' 10 O (공백 포함)
NVARCHAR2(10) N'오라클' 3 X

🔹 정리