케릭터셋 문제입니다.

by 훈입니다. posted Apr 13, 2020

* 질문 등록 시 다음의 내용을 꼭 기입하여 주세요.
OS
Window7 32bit, Linux 64bit 등
CUBRID Ver.
[cubrid_rel] 수행 결과
CUBRID TOOL Ver.
[도움말]-[버전정보] 확인
응용 환경(API)
java, php, odbc 등 입력

* CUBRID 응용 오류, SQL 오류 또는 SQL 튜닝 관련된 문의는 반드시 다음의 내용을 추가해 주세요. 비밀글이나 비밀 댓글도 가능합니다.
* 저희가 상황을 이해하고, 재현이 가능해야 알 수 있는 문제들이 많습니다. 가능한 정보/정황들을 부탁합니다.
에러 내용 및 재현 방법 재현 가능한 Source와 SQL
관련 테이블(인덱스, 키정보 포함) 정보 CUBRID 홈 디렉토리 아래 log 디렉토리 압축


-------------- 아래에 질문 사항을 기입해 주세요. ------------------------------------------------------------------------



Linux 우분투를 사용하고 있고

CUBRID 9.1 (9.1.0.0212) (64bit release build for linux_gnu) 을 설치했습니다.


질문 드릴사항은

select collation('ABC')

====utf8_bin====

select charset('ABC')

====utf8========


이렇게 나오고 있습니다.


근데


CREATE TABLE t1( i1 INTEGER ,
i2 INTEGER not null,
i3 INTEGER unique,
s1 VARCHAR(10),
s2 VARCHAR(10),
s3 VARCHAR(10) );

테이블을 생성하고


select a.class_name, b.charset_name
from _db_class a, db_collation b
where a.collation_id = b.coll_id and a.is_system_class = 0;

확인하면

==========ti   iso88591==============

이렇게 나오고 있습니다.

테이블을 생성하면 자동으로 utf-8로 할수 없나요??



===============================================================================================================


진짜 큰문제는 오라클에서 마이그레이션을 했는데

SELECT * FROM mgs_user 을 하면 한글이 다 잘나오고 있습니다.

근데 여기서 문제는

SELECT substr(필드명,0,1) FROM mgs_user

이런식으로 한글을 잘랐는데

� (다이아몬드 형식으로 나오더군요)

이거 어디서 부터 잘못된건가요??

마이그레이션을 하면 자동으로 iso88591 로 되더군요

그래서

ALTER TABLE mgs_user COLLATE utf8_bin;

이렇게도 해봤는데 역시 똑같습니다.


해결방법좀 부탁드립니다.




Articles

22 23 24 25 26 27 28 29 30 31