본문 바로가기
DB/ORACLE

Oracle 오라클 인코딩 설정, 캐릭터셋 변경, 한글깨짐

by 애플 로그 2022. 3. 16.
반응형

Oracle 오라클 인코딩 설정, 캐릭터셋 변경, 한글깨짐

 

1. 오라클 CHARACTERSET 확인 방법

 

system 계정 접속

 


SELECT * FROM sys.props$
where name like '%CHARACTERSET%';
 

 

 

 

 

CHAR : KO16MSWIN949

NCHAR : AL16UTF16

 

한글깨짐 ) characterset 을 KO16KSC5601 사용하는 경우 똠, 펲, 샾, 잌, 볖, '볌', '뮌', '믜', '됌'  글자들은 깨진다. KSC5601(국가표준, Oracle에서 정의한 표준이 아님) Character Set 에 정의되어 있지 않기 때문에 발생하는 문제이다.

 

해결방안은 아래에서 자세히 알아보시기 바랍니다.

 

해결 방안 ) 

DB의 character set을 KO16MSWIN949로 변경. 

       KO16MSWIN949은 KO16KSC5601의 superset으로써 KO16KSC5601의 모든 한글 외에 추가로 

       '똠','샾'과 같은 모든 조합가능한 현대 한글을 지원합니다. 

       > connect "/ as sysdba" 

       > startup mount exclusive 

       > alter system enable restricted session; 

       > alter database character set KO16MSWIN949; 

       > shutdown immediate; 

       > startup 

 

 

2. 한글지원 케릭터셋 비교 테이블

 

한글을 지원하는 캐릭터셋


 1. KO16KSC5601 
 2. KO16MSWIN949 
 3. UTF8 
 4. AL32UTF8

 

아래에서 더 자세히 알아보시기 바랍니다.

한글을 지원하는 캐릭터셋 비교 테이블
  KO16KSC5601 KO16MSWIN949 UTF8 AL32UTF8
한글 지원상태 한글 2350 KO16KSC5601 + 확장 8822( 11172) 한글 11172 한글 11172
캐릭터셋/인코딩 버전 한글완성형 완성형코드포함
확장된 8822자는 MS Windows Codepage 949 따라 배열
8.1.6 이전 : Unicode 2.1
8.1.7 
이후: Unicode 3.0
9i Rel1: Unicode 3.0
9i Rel2 : Unicode 3.1
10g Rel1 : Unicode 3.2
1/0g Rel2 : Unicode 4.0
한글바이트 2바이트 2바이트 3바이트 3바이트
지원버전 7.x 8.0.6 이상 8.0 이후 9i Release 1 이상
Database Characterset으로 설정 가능 여부 가능 가능 가능 가능
National Characterset으로 설정 가능 여부 불가능 불가능 가능 불가능
한글정렬 단순 바이너리 정렬로 구현 가능 KOREAN_M 또는 UNICODE_BINARY  특수한 옵션 필요
(
한글 정렬에 관한 설명 참조)
한글 정렬은 단순 바이너리 정렬로 가능. 한자 정렬은 KOREAN_M 옵션 필요  
장점 - 특별한 장점이 없음. 완성형 코드만을 입출력하는 것이 확실할 경우에는 높은 성능 - 2바이트로 모든 한글 저장/입출력 가능. 공간의 소모가 적으면서도 모든 한글을 입출력할  있다

- 현대 한글 11172자가 정확한 순서로 배열되어 정렬이 효과적
- 
다른 언어들(중국어 태국어 ) 또한 같은 데이타베이스 인스턴스에 저장되어야  경우 UTF8 등의 유니코드 캐릭터셋 이외에 다른 대안이 있을  없음
- 한글 지원은 UTF8 동일
단점 - 한글을 2350자밖에 지원하지 못한다는 치명적인 단점이 있어 미래에는 사용이 자제되어야  캐릭터셋 - 완성형과 호환을 하려다보니, 글자배열순서와 정렬 순서가 다르게 . 단순한 "ORDER BY" 절로는 제대로 한글 정렬을   없음 한글  캐릭터가 3바이트를 소모하게 되어 공간의 소모가 크고, 유니코드 인코딩/디코딩에 성능을 소모해야 한다  

 

기존 캐릭터셋 새로운 캐릭터셋 변경 가능 여부
US7ASCII KO16KSC5601/KO16MSWIN949/UTF8/AL32UTF8 가능
KO16KSC5601 KO16MSWIN949 가능
KO16MSWIN949 UTF8 불가능
UTF8 AL32UTF8 가능

 

 

 

 

 

oracle 21c XE 다운로드 및 설치

oracle 11g 삭제 방법 기존에 11g xe 가 설치 되어있었다. 삭제하고 21c xe를 설치 할 예정이다. 1) 시작 > 실행 > cmd sc delete "OracleJobSchedulerXE" sc delete "OracleMTSRecoveryService" sc delete "OracleServiceXE" sc delete "Orac

www.appletong.com

 

 

ORACLE 12C 다운로드 및 구버전 (2022년 update)

ORACLE 12C 다운로드 및 구버전 (2022년 update) oracle 12c 환경이 필요해서 다운로드 설치하려고, 오라클 공식 홈페이지에 들어갔더니, 왠일인가 다운로드 다 막혀있고, oracle 19c, 21c만 확인 되니 아무리

www.appletong.com

 

 

오라클 테이블스페이스 사용량 조회

오라클 테이블스페이스 사용량 조회 SELECT A.TABLESPACE_NAME AS "테이블스페이스명" , A.BYTES / 1024 AS "전체(MB)" , (A.BYTES - NVL(B.FREEBYTES,0)) / 1024 AS "사용량(MB)" , NVL(B.FREEBYTES,0) / 1024 AS "잔여량(MB)" , ROUND(NVL(B

www.appletong.com

 

댓글