Oracle Character Set(NLS_CHARACTERSET) - 오라클 문자집합 확인하기

오라클 문자집합 확인하기

oracle character set

오라클에서 현재 캐릭터셋을 확인하는 방법입니다.

이 밖에도 여러 테이블이나 뷰에서 제공하는 곳이 있습니다.

  • PROPS$ 테이블을 확인하는 방법
  • NLS_DATABASE_PARAMETERS 뷰를 확인하는 방법
  • SYS_CONTEXT에서 사용자 환경의 언어 설정을 확인하는 방법
  • SELECT * FROM V$NLS_PARAMETERS;

참고로 언어설정 변경은 SYS.PROPS$ 테이블을 UPDATE 하고, DBMS에 대해 셧다운/스타트업 등의 데이터베이스 작업이 필요합니다.

SELECT *
  FROM SYS.PROPS$
 WHERE NAME IN ('NLS_CHARACTERSET', 'NLS_NCHAR_CHARACTERSET');

SELECT *
  FROM NLS_DATABASE_PARAMETERS
 WHERE PARAMETER IN ('NLS_CHARACTERSET', 'NLS_NCHAR_CHARACTERSET');

SELECT SYS_CONTEXT ('USERENV', 'LANGUAGE') FROM DUAL;

NLS_CHARACTERSET vs NLS_NCHAR_CHARACTERSET

오라클 캐릭터 셋

NLS_CHARACTERSET은 주로 CHAR, VARCHAR2, CLOB 등의 컬럼에 쓰이는 문자집합이며,

NLS_NCHAR_CHARACTERSET은 N에서도 알 수 있듯이 NCHAR, NVARCHAR2, NCLOB 등의 컬럼에 사용하는 문자집합입니다.

CHARACTERSET VALUE$

국내에서 서비스를 제공하는 경우에는 데이터베이스 캐릭터셋이 한글로 되어 있어야겠죠?

다음은 일반적으로 볼 수 있는 한글 캐릭터셋 3가지입니다.😉

가끔 날짜 형식이 이상하다거나, 문자가 깨져서 보이는 현상이 있다고 하면 캐릭터셋이 예상과 다르게 설정되어 있을 가능성이 있습니다.(데이터베이스 설정과 별개로 로컬 컴퓨터 자체의 설정이 다르게 되어 있을 수도 있어요. 아주 가끔 본 적이 있습니다😅)

KO16KSC5601 (표준 명칭 : KS X 1001)

한국 산업 규격 한국어 문자집합이며 2바이트 부호계입니다.
한글 글자 마디 영역에서 2,350자를 가나다 순서로, 한자 영역에는 4,888자를 한글 독음 순서로 나열하고 있습니다.

KO16MSWIN949 (표준 명칭 : 코드 페이지 949, CP949)

마이크로소프트 사의 윈도우즈에서 도입한 코드 페이지입니다.
이 인코딩은 128 미만에 [KS X 1003] 집합을 할당하며, 그다음 128 이상의 두 바이트에 [KS X 1001(KO16KSC5601)] 집합을 배당합니다.
나머지 공간에 8,822개의 한글을 가나다 순서로 설정하여 페이지를 구성합니다. (총 표현 가능한 한글 11,172개)
이 때문에 CP949에서 한글 표현에 관한 정규표현식 중 전체 한글은 [가-힣]이 아닙니다. ('힣'으로 하면 정규식 캡처를 다 못 함)

AL32UTF8

UTF8 캐릭터셋에 추가적으로 유니코드 다국어보충평면(SMP : Supplementary Multilingual Plane) 중 일부 (U+10000 ~ U+10FFFF)를 지원합니다.
유니코드 버전 3.0 이상, 최대 4바이트까지 저장 영역이 필요합니다.
유니코드를 기본으로 하기에 한글을 11,172자까지 표현할 수 있습니다.
(KO16MSWIN949 와 같이 표현할 수 있는 한글 개수는 11,172로 같습니다.)

댓글