Background Image
조회 수 39013 추천 수 0 댓글 0
?

단축키

Prev이전 문서

Next다음 문서

크게 작게 위로 아래로 댓글로 가기 인쇄

CUBRID는 다른 DBMS와는 달리 CharacterSet 설정이 없는 상태에서 입력하는 클라이언트의 Character Code를 그대로 받아들입니다. 이렇게 함으로써 입력과 출력이 동일한 형태가 되도록 하고 있습니다.
입력된 character code를 그대로 저장하는 특성 때문에 입력되는 Character Code가 어떤 CharacterSet을 사용하느냐에 따라 저장사이즈가 달라집니다. 따라서 컬럼의 사이즈를 결정할 때 입력되는 CharactrerSet을 고려하여 결정하여야 합니다.

한글 처리시 euc-kr 의 경우 2byte, utf-8의 경우 3byte가 사용되고 CUBRID에는 입력 byte 그대로 저장되기 때문에 euc-kr로 "홍길동"을 입력한다면 char(6)으로 설정해야 정상 저장 될 것이고,  utf-8로 입력하는 경우 char(9)로 설정해야 저장 됩니다.

 

다른 DBMS는 아래와 같습니다.

1. Oracle
Oracle에서는 한글을 지원하기 위해 사용되는 CharacterSet이 KO16KSC5601, KO16MSWIN949, UTF8, AL32UTF8이 있습니다.
이중 KO16KSC5601, KO16MSWIN949는 한글 처리를 위해 2byte가 사용되고, UTF8, AL32UTF8는 3byte가 사용됩니다.
Oracle에서는 컬럼의 사이즈를 지정할 때 byte로 설정할 것인지 아니면 char로 설정할 것인지를 선택할 수 있습니다.
위에서 예를 들은 '홍길동'을 UTF-8로 저장하기 위해서는 컬럼의 데이터 타입 정의시 char(9 byte)로 하거나, char(3 char)로 사용합니다.

 

2. MySQL
MySQL에서는 한글을 지원하기 위해 사용되는 CharacterSet이 euckr, utf-8이 있습니다.
MySQL에서는 컬럼의 사이즈를 지정할 때 CharacterSet의 종류에 상관 없이 문자단위로 처리합니다.
위에서 예를 들은 '홍길동'을 저장할 컬럼을 생성할 때 CharacterSet이 euckr이건 utf-8이건 상관없이 모두 char(3)으로 사용합니다.

 

3. Altibase
Altibase에서 지원하는 CharacterSet은 매뉴얼 등에서 찾지 못했고KO16KSC5601, UTF-8은 사용되는 것 같습니다.
컬럼 사이즈 지정 관련하여서는 byte 단위로 처리함에 따라 UTF-8로 '홍길동'을 저장하는 경우 char(9)로 사용합니다.

 

4. Tibero
Tibero 에서 지원하는 CharacterSet은 매뉴얼 등에서 찾지 못했고 UTF8, EUCKR, MSWIN949이 사용되는 것 같습니다.
컬럼 사이즈 지정 관련하여서는 Oracle과 동일한 방식이 사용되고 있습니다.


 

따라서 한글이 사용된 컬럼(데이터 타입이 char or varchar)을 CUBRID로 변경하기 위해서는 아래와 같이 사이즈를 고려하여야 합니다.

아래의 예는 utf-8 한글 사용의 경우입니다.

1. Oracle은 char(9 byte)의 경우 CUBRID는 char(9)로, char(9 char)인 경우는 CUBRID는 char(27)로

2. MySQL은 char(9 byte)의 경우 CUBRID는 char(27)로

3. Altibase은 char(9 byte)의 경우 CUBRID는 char(9)로

4. Tibero의 경우 Oracle과 동일

 


List of Articles
번호 분류 제목 글쓴이 날짜 조회 수
180 질의작성 여러건의 코드명을 한건으로 조회하는 쿼리입니다. 1 권호일 2012.03.30 11149
179 응용개발 utf-8로 저장된 한글이 JAVA SP를 사용하여 읽어 오면 깨져 보일때 손승일 2012.03.10 21268
178 마이그레이션 MySQL에서 사용하는 스키마 변환시 주의 사항 정만영 2012.03.02 13590
177 마이그레이션 오라클 to CUBRID로 마이그레이션 수행 시 주의사항 정만영 2012.03.02 21342
176 응용개발 Weblogic 10.0 사용시 JDK 1.5를 사용한 JDBC 드라이버 사용시 주의사항. cubebridge 2012.02.22 52291
175 응용개발 CUBRID에서 SQL힌트와 주석을 쓸 때 순서. cubebridge 2012.01.11 13846
174 기타 CUBRID csql -i 옵션 사용시 주의 사항 이용미 2011.12.22 9460
173 질의작성 오라클의 order by 시 first와 last 대체 사용법 file 이용미 2011.12.22 20478
172 운영관리 CUBRID 4.0 버전 IP/db_user 접속 제한 추가 기능 이용미 2011.12.09 9534
171 운영관리 CUBRID 4.0 서버 재부팅 후 CUBRID Tray 기동문제 해결방법 정만영 2011.08.31 12658
170 운영관리 큐브리드 + 아파치 + php 설치 및 연동 1 하하보이 2010.12.15 22206
169 응용개발 CUBRID R3.0부터 JDBC를 사용하는 응용에서 charset 설정 방법이 변경되었네요. 손승일 2010.12.02 19977
168 운영관리 windows 환경에서 Manager 접속이 되지 않는 경우 처리 방안 남재우 2010.11.26 14705
167 응용개발 CUBRID와 Oracle에서의 ''(공백)의 차이 비교 cubebridge 2010.10.01 28976
166 질의작성 데이터 존재하면 update, 존재하지 않으면 insert 방법(ON DUPLICATE KEY UPDATE) 손승일 2010.08.11 38395
165 응용개발 cubrid-php module r2.2 이상 버젼에서 configure시에 주의사항 seongjoon 2010.07.20 14321
164 CUBRID 매니저 CUBRID HA 또는 복제를 사용하는 경우 CUBRID 매니저를 통한 테이블, 컬럼 등 생성 금지 3 손승일 2010.07.01 17818
163 응용개발 CUBRID에서 CHAR와 NCHAR의 차이점 cubebridge 2010.07.01 21751
162 응용개발 PHP에 CUBRID 모듈 추가시 모듈이 로드되지 않는 문제에 대한 해결 방안 하나입니다 남재우 2010.07.01 16918
161 질의작성 function based index 대체 방법 남재우 2010.07.01 13722
Board Pagination Prev 1 2 3 4 5 6 7 8 9 10 ... 14 Next
/ 14

Contact Cubrid

영업문의 070-4077-2112 / 기술문의 070-4077-2113 / 대표전화 070-4077-2110 / Email. contact_at_cubrid.com
Contact Sales